Python列表list的详细用法介绍

 更新时间:2022年07月15日 15:00:53   作者:爪哇斗罗  
这篇文章主要介绍了Python列表list的详细用法介绍,列表(list)作为Python中基本的数据结构,是存储数据的容器,相当于其它语言中所说的数组

一. 创建列表

列表(list)作为Python中基本的数据结构,是存储数据的容器,相当于其它语言中所说的数组。

模拟出的结构如下:

创建列表有两种方式:

1.1 第一种

使用“[ ]”进行创建,内部元素可以是任意数据类型:

list1=["Hello","world",True,0.01,12]

1.2 第二种

使用Python中内置函数list()

list2=list(["Hello","world",True,0.01,12])

列表的特点总结: 

列表元素是按照有序顺序进行排序的每个索引对应一个数据列表数据可以重复存储内部元素可以是任意数据类型根据内部元素多少动态分配内存空间

二. 查询列表

2.1 获取列表元素索引

使用index()函数获取元素索引,若列表中有重复元素,只获取第一个位置的索引,元素不存在会抛出错误。

list1 = ["Hello","Hello",True,0.01,12]
# 索引为 0
print(list1.index("Hello"))
# 索引为 4
print(list1.index(12))
# 索引不存在 ValueError: 100 is not in list
print(list1.index(100))

给index()函数设置参数,可以在指定的范围内查找元素的索引位置

list1 = ["Hello", "Hello", True, 0.01, 12]
# 从索引1开始到索引4结束,不包括索引4,查找元素True的索引为2
print(list1.index(True, 1, 4))

2.2 获取列表单个元素

对于一个列表,索引从前往后下标是从0~N-1,从后往前是-N~-1,N表示元素个数。

list1 = ["Hello", "Hello", True, 0.01, 12]
# 获取索引为2的元素 True
print(list1[2])
# 获取索引为-1的元素 12
print(list1[-1])
# IndexError: list index out of range
print(list1[5])

2.3 获取列表多个元素

使用索引只能获取一个元素,想要获取列表中多个元素使用切片。

公式:列表名[start : stop :step],意思是从哪里开始到哪里结束,可以定义步长(默认步长为1,step不能为0)。

对于切片的结果就是对原列表的拷贝生成一个新的列表对象。

切片的用法如下:

list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34]
 
# 取索引1~6,默认步长为1:['Hello', True, 0.01, 12, 32]
print(list1[1:6:])
# 取索引1~6,['Hello', True, 0.01, 12, 32]
print(list1[1:6:1])
# 取索引1~6,步长为2:['Hello', 0.01, 32]
print(list1[1:6:2])
# start不写,默认从0开始:['Hello', True, 12]
print(list1[:6:2])
# ['Hello', True, 12]
print(list1[0:6:2])
# stop不写,
print(list1[0::2])
# step为负数 -1 [34, 32, 12, 0.01, True, 'Hello', 'Hello']
print(list1[::-1])
# [34, 12, True, 'Hello']
print(list1[::-2])
# [32, 12, 0.01, True, 'Hello', 'Hello']
print(list1[5::-1])
# [32, 12, 0.01, True]
print(list1[5:1:-1])

注意:若step为负数则是从后往前开始截取切片。

2.3 判断元素是否存在于列表

使用in或者not in,输出的是布尔类型的值。 

list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34]
 
# True
print("Hello" in list1)
# False
print("Hello" not in list1)
# False
print(True not in list1)
# True
print(12 in list1)

遍历列表元素:

list1 = ["Hello", "Hello", True, 0.01, 12, 32, 34]
for i in list1:
    print(i)

三. 列表添加操作

list1=[10,20,30,40,50,60]
# 在列表末尾添加一个元素
list1.append(34)
# [10, 20, 30, 40, 50, 60, 34]
print(list1)
# 在列表末尾添加多个元素
list1.extend([21,12,34])
# [10, 20, 30, 40, 50, 60, 34, 21, 12, 34]
print(list1)
# 在列表任意位置添加一个元素
list1.insert(0,1)
# [1, 10, 20, 30, 40, 50, 60, 34, 21, 12, 34]
print(list1)
# 在列表任意位置添加多个元素,会删除切片的元素,然后添加新元素
list2=["hello",3,40]
list1[5:8:]=list2
# [1, 10, 20, 30, 40, 'hello', 3, 40, 21, 12, 34]
print(list1)

四. 列表删除操作

list1 = [10, 20, 30, 40, 50, 60, 70]
list1.remove(20)
# [10, 30, 40, 50, 60, 70]
print(list1)
# 删除索引为1的元素,不指定删除最后一个元素
list1.pop(1)
# [10, 40, 50, 60, 70]
print(list1)
# 切片删除
list1[1:3] = []
# [10, 60, 70]
print(list1)

五. 修改列表元素

为指定的索引修改元素值,也可以使用切片的方式修改。

list1 = [10, 20, 30, 40, 50, 60, 70]
list1[3]="Hello"
# [10, 20, 30, 'Hello', 50, 60, 70]
print(list1)
# 切片方式
list1[3:6]=[1,1,1,1]
# [10, 20, 30, 1, 1, 1, 1, 70]
print(list1)

六. 列表排序操作

有常见的两种方式可以对列表中的元素进行排序,使用sort(),或者sorted()的方式进行排序。

两者区别就是前者排序后不会生成新的列表对象,而后者会生成一个新的列表对象。

list1 = [10, 30, 20, 40, 80, 60]
# 原来list1: 1738929360704
print("原来list1:", id(list1))
# [10, 20, 30, 40, 60, 80] 默认升序
list1.sort()
print(list1)
# 后来list1: 1738929360704
print("后来list1:", id(list1))
# 指定reverse=True为降序
list1.sort(reverse=True)
# [80, 60, 40, 30, 20, 10]
print(list1)
###################################
list2 = [10, 30, 67, 100, 80, 32]
# 原来list2:  2357934175872
print("原来list2: ", id(list2))
list2 = sorted(list2)
# # [10, 30, 32, 67, 80, 100]
print(list2)
# 后来list2:  2357931224384
print("后来list2: ", id(list2))
# 降序
list2 = sorted(list2, reverse=True)
# [100, 80, 67, 32, 30, 10]
print(list2)

此外,还可以使用循环生成列表,称为列表生成式。

主要结构:

[ i*i for i in range(a,b) ]

通过一个for循环生成列表,i*i指的是计算公式。

代码操作:

# 生成1-9的列表式子,并通过i+i计算
list1 = [i + i for i in range(1, 10)]
# [2, 4, 6, 8, 10, 12, 14, 16, 18]
print(list1)

以上就是对于Python列表的简单操作。 

到此这篇关于Python列表list的详细用法介绍的文章就介绍到这了,更多相关Python列表list内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 装饰器使用详解

    Python 装饰器使用详解

    装饰器是Python语言中的高级语法。主要的功能是对一个函数、方法、或者类进行加工,作用是为已经存在的对象添加额外的功能,提升代码的可读性。装饰器是设计模式的一种,被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等
    2017-07-07
  • Python容错的前缀树实现中文纠错

    Python容错的前缀树实现中文纠错

    本文使用 Python 实现了前缀树,并且支持编辑距离容错的查询。文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Python ValueError: invalid literal for int() with base 10 实用解决方法

    Python ValueError: invalid literal for int() with base 10 实用

    这篇文章主要介绍了Python ValueError: invalid literal for int() with base 10 实用解决方法,本文使用了一个取巧方法解决了这个问题,需要的朋友可以参考下
    2015-06-06
  • ndarray的转置(numpy.transpose()与A.T命令对比分析)

    ndarray的转置(numpy.transpose()与A.T命令对比分析)

    这篇文章主要介绍了ndarray的转置(numpy.transpose()与A.T命令对比分析),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python格式化字符串f-string简介

    Python格式化字符串f-string简介

    f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,这篇文章主要介绍了Python格式化字符串f-string概览,需要的朋友可以参考下
    2022-12-12
  • python中pandas库中DataFrame对行和列的操作使用方法示例

    python中pandas库中DataFrame对行和列的操作使用方法示例

    这篇文章主要介绍了python中pandas库中DataFrame对行和列的操作使用方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • python else语句在循环中的运用详解

    python else语句在循环中的运用详解

    这篇文章主要介绍了python else语句在循环中的运用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Python如何实现定时器功能

    Python如何实现定时器功能

    在本篇文章里小编给大家分享的是关于Python中的简单定时器实例及代码,需要的朋友们可以学习下。
    2020-05-05
  • Python中的递归函数使用详解

    Python中的递归函数使用详解

    这篇文章主要介绍了Python中的递归函数使用详解,递归函数是指某个函数调用自己或者调用其他函数后再次调用自己,由于不能无限嵌套调用,所以某个递归函数一定存在至少两个分支,一个是退出嵌套,不再直接或者间接调用自己;另外一个则是继续嵌套,需要的朋友可以参考下
    2023-12-12
  • Python OpenCV实现识别信用卡号教程详解

    Python OpenCV实现识别信用卡号教程详解

    本文将介绍如何通过 OpenCV 和 Python 使用模板匹配来执行光学字符识别 (OCR),再应用我们的模板匹配 OCR 方法来识别信用卡类型以及 16 位信用卡数字。代码具有一定价值,感兴趣的童鞋可以了解一下
    2021-11-11

最新评论