测开不得不会的python之列表List-python list怎么输入
****原创不易,欢迎大家点赞关注,给作者鼓励****
文章目录
List是可变数据类型
使用list()函数可以将可迭代对象转换为列表
List的切片
List的For循环
List的copy功能
List的列表推导式
List是python中的列表,是有序的数据组合,使用中括号[]表示。
列表的数据可以是数字、字符串、字典、元组等,还可以创建嵌套列表;list中的每一项元素,用英文半角的逗号(,)分割。
所有序列能用到的标准操作方法,列表也都可以使用,比如切片、索引等,python的list是可变数据类型,它支持添加 append、插入 insert、修改、删除del等操作。
List是可变数据类型
#第1步:定义一个包含数字的列表 >>>number_listA = [1,2,3] #查看列表的内存地址 >>>print(id(number_listA)) 2114998456840 #第2步:将变量赋值给另一个变量 >>>number_listB = number_listA #第3步:在列表B最后位置追加数字 >>>number_listB.append(4) #打印列表B >>>print(number_listB) [1, 2, 3, 4] #第4步:查看列表B的内存地址 >>>print(id(number_listB)) 2836824805896 #两次打印的内存地址是同一个,说明指向同一个列表对象以上过程如下图所示,帮助理解列表的可变性。
PS:尤其是在使用函数传递列表参数时要注意,若在函数中修改传入的元素,该列表指向的对象会被修改,所以一般为了防止列表在函数引用时被修改,通常可以使用函数copy.deepcopy()深拷贝功能在函数内定义一个新的对象。
使用list()函数可以将可迭代对象转换为列表
# 定一个字符串 >>>session = helloworld #使用list()函数转为列表 >>>session_list= list(session) #打印内容 >>>print(session_list) [h, e, l, l, o, w, o, r, l, d]List的切片
List的元素索引以0开始,最后一个元素可以表示为-1。
如列表 ListA = [1,2,3,4,5],以下表格是元素值和索引的关系表。
元素值
1
2
3
4
5
从前面开始的索引
0
1
2
3
4
从后面开始的索引
-5
-4
-3
-2
-1
List的For循环
循环列表内的元素ListA = [1,2,3,4,5] for i in ListA: print(i) #打印结果如下 1 2 3 4 5使用range()函数循环列表的长度 for i in range(len(ListA)): print(ListA[i]) #打印结果如下 1 2 3 4 5使用enumerate()函数遍历列表同时获取索引和元素for i,data in enumerate(ListA): print(f索引: {i} 元素 : {data}) #打印结果如下 索引: 0 元素 : 1 索引: 1 元素 : 2 索引: 2 元素 : 3 索引: 3 元素 : 4 索引: 4 元素 : 5List的copy功能
>>>ListA = [1,2,3,4,5,[1,2,3]] >>>print(f列表ListA 内存地址 : {id(ListA)}) >>>print(f列表ListA的最后1个列表元素 内存地址 : {id(ListA[-1])}) #使用list.copy()函数复制列表给另一个变量 >>>ListB = ListA.copy() >>>print(f列表ListB 内存地址 : {id(ListB)}) >>>print(f列表ListB的最后1个列表元素 内存地址 : {id(ListB[-1])}) #结果如下:ListA和ListB的内存地址不同,但是列表内最后一个元素的内存地址还是一样,表示虽然用了copy功能,但是只是最外层的列表对象复制为另一个对象,但是列表内的嵌套列表指向的还是同一个对象。 列表ListA 内存地址 : 2492035908616 列表ListA的最后1个列表元素 内存地址 : 2492034601992 列表ListB 内存地址 : 2492036002184 列表ListB的最后1个列表元素 内存地址 : 2492034601992ListA和ListB的内存地址不同,但是列表内最后一个元素的内存地址相同,表示虽然用了copy功能,但只是最外层的列表对象复制为另一个对象,列表内的嵌套列表指向的还是同一个对象。
如果想全部复制列表的所有元素的对象,可以使用copy.deepcopy()深拷贝功能
import copy ListC = copy.deepcopy(ListA) print(f列表ListC 内存地址 : {id(ListB)}) print(f列表ListC的最后1个列表元素 内存地址 : {id(ListB[-1])}) #结果如下: 嵌套列表元素指向的对象也不相同 列表ListC 内存地址 : 2502494208648 列表ListC的最后1个列表元素 内存地址 : 2502494097160List的列表推导式
语法: [表达式 for 变量 in 列表],表示把得到的每一个变量值都放到 for 前面的表达式中计算 ,然后生成一个列表。
举例:获取步长为2的列表元素放入一个新的列表
>>>ListA = [1,2,3,4,5,6,7,8,9,10] #使用for循环 >>>ListB = [] for i in ListA[::2]: ListB.append(i)使用列表推导式,代码变的很简单美观。
>>>ListB = [i for i in ListA[::2]]以上就是关于《测开不得不会的python之列表List-python list怎么输入》的全部内容,本文网址:https://www.7ca.cn/baike/62361.shtml,如对您有帮助可以分享给好友,谢谢。