一、列表的创建与删除
1.创建空列表
方法一:list01 = []
方法二:list02 = list()
2.创建具有默认值的列表
方法一:list03 = ['整数', '元组', '字符串', '列表', '元组','字典','...' ]
方法二:list04 = list(可迭代类型数据)
e.g. l = list(range(0, 20, 2))
l = list("abcde")
注:这里的可迭代数据是可以转换为列表的数据,如range对象、字符串、元组等
3.删除列表
del listname
二、读取列表元素
1.单次读取
print(list03) # 打印输出全列表(包含中括号)
print(list03[2]) # 根据下标索引打印输出单个列表元素(直接打印元素内容)
print(list03[:3]) # 利用切片获取列表中的一段元素值
2.循环遍历列表
1)依次遍历
从头到尾遍历
for item in listname[::]:
print(item)
从尾到头遍历
for i in range(len(listname)-1, -1, -1):
print(listname[i])
2)间隔遍历
for item in listname[::2]:
print(item)
3)for循环和内置函数搭配,实现同时输出索引值和元素内容
i. 与range()
for index in range(start, end, step)
print(index, list_demo[index])
ii. 与enumerate()
for index, item in enumerate(listname):
print(index, item)
三、添加、修改和删除列表元素
1.添加元素
i. append()方法:在末尾追加元素
listname.append(obj)
ii. insert()方法:指定任意位置添加元素
listname.insert(index, obj)
iii. 通过“+”号将两个序列连接,实现为列表添加元素(追加到原列表中)
list04 = ["a", "b"]
list04 += ["c", "d"]
iv. extend()方法实现将一个列表的全部元素添加到另一个列表中
listname.extend(seq)
2.修改元素
i. 修改单个元素(下标索引)
listname[index] = new_value
ii. 修改一段元素(切片)(前后修改的元素个数不一定相等))
listname[start:end] = [new_value]
3.删除元素
i.根据索引删除
del L[index]
L.clear() # 清空列表内的所有元素,等同于 L[:] = []
ii.根据元素值删除
L.remove(x) # 从列表中删除第一次出现在列表中的值,
# 若元素不存在,则报错ValueError
L.pop([index]) # 删除索引对应的元素,如果不加索引,默认删除最后元素,
# 同时返回被删除的元素
四、其他列表操作
i.统计、计算
L.count(x) # 用于统计某个元素x在列表中出现的次数
L.index(v [, begin[, end]]) # 返回对应元素的索引下标, begin为开始索引,end为结束索引,当 value 不存在时触发ValueError错误
sum(L[,start]) # 统计数值列表中各元素的和,start为开始索引,默认为0
ii.排序
L.sort(key=None, reverse=False) # 将列表中的元素进行排序,默认升序排列;
# key表示指定一个从每列元素中提取一个用于比较的键,如key=str.lower
sorted(L, key=None, reverse=False) # 作用同上
【注】列表对象的sort()方法和内置sorted()函数的作用基本相同,不同之处在于使用sort()方法时,会改变元列表的排列顺序,使用sorted()函数时,会建立一个原列表的副本,该副本为排序后的列表。
L.reverse() # 列表的反转,用来改变原列表的先后顺序
iii.拷贝
L.copy() # 浅拷贝(只复制一层,不会复制深层对象)
L[:] # 浅拷贝(只复制一层,不会复制深层对象)
import copy
copy.deepcopy(L) # 深拷贝,可以复制深层对象
五、列表推导式
使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。
语法(if条件为可选项):
newlist = [对变量的操作 for 变量名 in 可迭代对象 if 条件]
e.g.
randomnumber = [random.randint(10, 100) for i in range(10)]
sale1 = [int(x*0.5) for x in price_list]
sale2 = [x for x in price_list if x>5000]