List(列表) 是 Python 中使⽤最频繁的数据类型。
列表可以完成⼤多数集合类的数据结构实现。列表中元素的类型可以不相同,它⽀持数字,字符串甚⾄可以包含列表(所谓嵌套)。
列表是写在⽅括号 [] 之间、⽤逗号分隔开的元素列表。
1、List写在⽅括号之间,元素⽤逗号隔开。
2、和字符串⼀样,list可以被索引和切⽚。
3、List可以使⽤+操作符进⾏拼接。
4、List中的元素是可以改变的。
列表对 + 和 * 的操作符与字符串相似。+ 号⽤于组合列表,* 号⽤于重复列表。
1、列表相加
# 定义列表
qingdao = ['msj', 'mjk', 'hjr']
qishun = ['lxs', 'xpx', 2020, 33]
# 输出列表
print("qingdao:", qingdao)
print("qishun:", qishun)
# 列表相加
allstr = qingdao + qishun
print("allstr = qingdao+qishun:\n", qingdao + qishun)
print("len(qingdao+qishun):", len(qingdao+qishun))
运行结果
qingdao: [‘msj’, ‘mjk’, ‘hjr’]
qishun: [‘lxs’, ‘xpx’, 2020, 33]
allstr = qingdao+qishun:
[‘msj’, ‘mjk’, ‘hjr’, ‘lxs’, ‘xpx’, 2020, 33]
len(qingdao+qishun): 7
2、列表重复
# 列表可以重复,重复30次
print("\n列表使用\n"+"-"*30)
运行结果
列表使用
.------------------------------
3、列表的遍历
print("\nallstr的遍历:" + "\n" + "-"*30)
# allstr 在上例已定义
for i in allstr:
print(i, end=" ")
运行结果
allstr的遍历:
.------------------------------
msj mjk hjr lxs xpx 2020 33
3、列表元素访问
print("\n访问第三个元素allstr[2]: ", allstr[2])
print("访问最后个元素allstr[-1]: ", allstr[-1])
print("取1-2个元素开始allstr[:2]: ", allstr[:2])
print("取3个元素开始allstr[2:]: ", allstr[2:])
print("max(allstr): ", allstr[2:])
运行结果
访问第三个元素allstr[2]: hjr
访问最后个元素allstr[-1]: 33
取1-2个元素开始allstr[:2]: [‘msj’, ‘mjk’]
取3个元素开始allstr[2:]: [‘hjr’, ‘lxs’, ‘xpx’, 2020, 33]
max(allstr): [‘hjr’, ‘lxs’, ‘xpx’, 2020, 33]
4、列表方法
4.1、添加元素到列表
#列表方法
print("修改前的列表: ",qishun)
# 尾部增加新元素
qishun.append(2020)
print("修改后的列表qishun:", qishun)
# 统计某个元素出现的次数
print("2020出现的次数:", qishun.count(2020))
运行结果
修改前的列表: [‘lxs’, ‘xpx’, 2020, 33]
修改后的列表qishun: [‘lxs’, ‘xpx’, 2020, 33, 2020]
2020出现的次数: 2
4.2、列表追添加元素
# 在列表末尾次性追加另一个序列中的多个值
print("操作前的列表: ",qishun)
list_add = [10, 10, 20, 10]
qishun.extend(list_add)
print("操作后的列表:", qishun)
# 从列表中找出某个值第一个匹配项的索引位置
print("qishun.index(obj):", qishun.index(2020))
# 将对象在index位置插入列表元素
qishun.insert(1,'Test')
print("qishun.insert(index,obj):", qishun)
运行结果
操作前的列表: [‘lxs’, ‘xpx’, 2020, 33, 2020]
操作后的列表: [‘lxs’, ‘xpx’, 2020, 33, 2020, 10, 10, 20, 10]
qishun.index(obj): 2
qishun.insert(index,obj): [‘lxs’, ‘Test’, ‘xpx’, 2020, 33, 2020, 10, 10, 20, 10]
4.3、列表元素的移除
# 移除默认最后的元素
qishun.pop()
print("qishun.pop():\n", qishun)
# 移除指定位置的元素
qishun.pop(1)
print("qishun.pop(index):\n", qishun)
# 移除列表中某个元素的第一个匹配项
print("qishun:", qishun)
qishun.remove(10)
print("qishun.remove(obj):\n", qishun)
运行结果
qishun.pop():
[‘lxs’, ‘Test’, ‘xpx’, 2020, 33, 2020, 10, 10, 20]
qishun.pop(index):
[‘lxs’, ‘xpx’, 2020, 33, 2020, 10, 10, 20]
qishun: [‘lxs’, ‘xpx’, 2020, 33, 2020, 10, 10, 20]
qishun.remove(obj):
[‘lxs’, ‘xpx’, 2020, 33, 2020, 10, 20]
4.4、列表反转、排序
# 反转列表
print("反转前:", qishun)
qishun.reverse()
print("反转列表qishun.reverse():\n", qishun)
#移除最后两个元素
for i in range(2):
qishun.pop()
print("移除两个元素后的新列表:", qishun)
qishun.sort()
print("列表排序(升序)qishun.sort():\n", qishun)
qishun.sort(reverse=True)
print("列表排序(降序)qishun.sort(reverse = True):\n", qishun)
shun = qishun.copy()
print("qishun.copy复制列表,shun:", shun)
qishun.clear()
print("清空列表qishun.sort():", qishun)
print("复制后的列表shun不受影响:", shun)
运行结果
反转前: [‘lxs’, ‘xpx’, 2020, 33, 2020, 10, 20]
反转列表qishun.reverse():
[20, 10, 2020, 33, 2020, ‘xpx’, ‘lxs’]
移除两个元素后的新列表: [20, 10, 2020, 33, 2020]
列表排序(升序)qishun.sort():
[10, 20, 33, 2020, 2020]
列表排序(降序)qishun.sort(reverse = True):
[2020, 2020, 33, 20, 10]
qishun.copy复制列表,shun: [2020, 2020, 33, 20, 10]
清空列表qishun.sort(): []
复制后的列表shun不受影响: [2020, 2020, 33, 20, 10]