列表
为什么需要列表
变量可以存储一个元素,而列表是一个大容器,可以存储n多元素,程序可以方便的对这些数据进行整体操作
列表相当于其它语言中的个数组
列表的创建与删除
列表需要使用中括号[],元素之间使用英文的逗号进行分割
列表的创建
使用中括号创建
# ----------列表---------- lst = ['python', 'pycharm', '', 1]
调用内置函数list()
a = list(['python', 'pycharm', '', 1]) print(id(a), a, type(a))
列表的特点
列表元素按顺序有序排序
索引映射为一个数据
列表可以存储重复数据
任意数据类型混存
根据需要动态分配和回收内存
列表的删除
# ---------列表删除---------- lst = ['python', 'pycharm', '', 1] # 按下标删除 del lst[2] # ['python', 'pycharm', 1] # 按内容删除 lst.remove(1) # ['python', 'pycharm'] # 清空列表 lst.clear() # []
列表的查询操作
获取列表中指定元素的索引:index()
如果所查列表中存在多个相同元素,只返回第一个元素的索引
如果查询的元素再列表中不存在,则会抛出ValueError
还可以在指定的start和stop之间进行查找
获取列表中的单个元素
正向索引从0到N-1
逆向索引从-N到-1
指定索引不存,抛出indexError
# ----------查询---------- ls = ['python', 'pycharm', 'aa', 'c'] lst = [1, 2, 10, 100, 1] print(lst.index(1)) # 0,只返回所查元素的第一个的索引 print(lst.index(2, 1, 5)) # 在下标1-5之间的元素中查找2 print(len(lst), max(lst), min(lst), list(lst)) # 列表元素个数、列表中最大值 print(max(ls), min(ls)) print(lst[2], ls[-2])
获取列表中多个元素
list[start,stop,step]
切片操作
结果:原列表片段的拷贝
范围:[start,stop]
step默认是1
step为正数:
切片的start默认是1,切片的stop默认是最后一个元素
step为负数:
切片的start默认是最后一个元素,切片的stop默认是第一位元素
# 获取多个元素 print(lst[0:2]) print(lst[0:4:2], lst[-1:-5:-2])
判断指定元素在列表中是否存在
column in list
column not in list
列表元素的遍历
for i in list:
操作
print(10 in lst) print(100 not in lst) for i in lst: print(i)
列表的增删改操作
列表元素的增加操作
增加操作 | 方法 | 操作描述 |
append() | 在列表尾部增加一个元素 | |
extend() | 在列表的末尾至少增加一个元素 | |
insert() | 在列表的任意位置增加一个元素 | |
切片 | 在列表的任意位置添加至少一个元素 |
# 列表元素的增加操作 lst = [10, 20, 30] print(lst) lst.append(50) # append,在最后添加50 print("1次操作:"+str(lst)) tup = ('60', '80') lst.extend(tup) # extend,在最后添加tup print("2次操作:"+str(lst)) lst.insert(1, 15) # insert,在下标1的地方添加15 print("3次操作:"+str(lst)) lst1 = [30, 40, 50] # 切片,将原列表中2到3的数据删去,使用填充的元素进行添加 lst[2:3] = lst1 print("4次操作:"+str(lst))
列表元素的删除操作
删除操作 | 方法 | 操作描述 |
remove() | 一次删除一个元素 | |
重复的元素只能删除第一个 | ||
元素不存在抛出ValueError | ||
pop() | 删除一个指定索引位置上的元素 | |
指定索引不存在抛出IndexError | ||
不指定索引删除列表中最后一个元素 | ||
clear() | 请空列表 | |
del | 删除列表 | |
切片 | 一次至少删除一个元素 |
# 列表元素的删除操作 lst = [10, 15, 30, 40, 50, 30, 80] lst.remove(50) print(lst) lst.pop(4) print(lst) del lst[-3:-1] print(lst) newlst = lst[1:3] # 切片,生成一个新的列表对象 print(newlst) lst[1:3] = [] # 不产生新的列表对象,而是删除原列表中的内容 print(lst) lst.clear() print(lst) del lst # 删除整个列表 print(lst)
列表元素的修改操作
为指定索引的元素赋予一个新值
为指定的切片赋予一个新值
# 列表元素的修改操作 lst = [1, 2, 3, 4, 5, 6, 7, 8] lst[2] = 4 print(lst) lst[1:3] = [5, 10, 15] print(lst)
列表元素的排序
常见的两种方法:
调用sort()方法,列中的所有元素默认按照从小到大的顺序进行排列,可以指定reverse=True来降序排序
调用内置函数sorted(),产生一个新的列表对象,可以指定reverse=True,进行降序排序,愿列表不发生变化
# ----------排序---------- # sort lst = [2, 3, 1, 5, 4, 6, 8, 7] lst.sort() # 正序排列 print(lst) lst.sort(reverse=True) # 倒序排列 print(lst) # sorted lst = [2, 3, 1, 5, 4, 6, 8, 7] print("原列表"+str(lst)) newlst = sorted(lst) print(newlst) newlst = sorted(lst, reverse=True) print(newlst)
列表生成式
列表生成式简称‘生成列表的公式’
语法格式:[i*i for i in range(1,10)]
注意事项:‘表示列表元素的表达式’中通常包含自定义变量
import math lst = [round(math.sqrt(i*2),1) for i in range(1, 10)] print(lst)
原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/272310.html