目录
列表(list)的常用操作
列表的定义
Python中的列表可以是由多种结构组成,里面的元素可以是列表、元组、集合、字典、字符串和数据类型
# 空列表的定义,以下为定义一个空列表li的定义方法
li = []
# 定义多种元素构成的列表(通常一个列表中只放入一种类型)
li1 = [[1, 2, 3], (4, 5, 6), {7, 8, 9}, {'name': 'zhou', 'age': 18}, 'hello world!']
# 创建数组列表
list(range(1,10))
列表的索引取值
列表中的每一个元素都有一个编号,称之为索引。列表的索引是从0开始的,即第一个元素的索引为0,以此类推
同时,python中也可以通过负数索引来进行取值,不过需要注意的是,负数索引的取值是从-1开始的
li = [[1, 2, 3], (4, 5, 6), {7, 8, 9}, {'name': 'zhou', 'age': 18}, 'hello world!']
# 通过索引取出列表li1中的第4个元素
print(li[3])
# 同时我们也可以通过负数来进行取值
print(li[-2])
# 通过索引取出列表中的多个值
print(li[1,4])
# 输出结果
{'name': 'zhou', 'age': 18}
{'name': 'zhou', 'age': 18}
[(4, 5, 6), {8, 9, 7}, {'name': 'zhou', 'age': 18, 'height': 185}]
删除列表(del)
在实际开发过程中,我们很少用到需要去删除列表。因为Python自带的垃圾回收机制会自动销毁不用的列表,即使我们不手动将其删除,Python也会自动将其回收
li = ['篮球', '乒乓球', '足球', '羽毛球']
# 删除列表li
del li
列表的增、删、改、查操作
增(append,insert,extend)
append增加元素
append只能往列表的最后插入一个元素
li = ['篮球', '乒乓球', '足球', '羽毛球']
# 在最后增加一个元素橄榄球
li.append('橄榄球')
print(li)
# 输出结果
['篮球', '乒乓球', '足球', '羽毛球', '橄榄球']
insert增加元素
insert可以通过索引插入到指定的位置
li = ['篮球', '乒乓球', '足球', '羽毛球']
li.insert(2, '高尔夫球')
print(li)
# 输出结果
['篮球', '乒乓球', '高尔夫球', '足球', '羽毛球']
extend增加元素
可增加一个可迭代对象,增加多个元素时传入一个列表
# 传入一个可迭代的列表对象
li = ['篮球', '乒乓球', '足球', '羽毛球']
li1 = ['橄榄球', '高尔夫球']
li.extend(li1)
print(li)
# 传入一个可迭代的字典对象,默认取值为key,不取value
li2 = ['篮球', '乒乓球', '足球', '羽毛球']
dic = {"球类": "橄榄球"}
li2.extend(dic)
print(li2)
# 传入一个列表值
li3 = ['篮球', '乒乓球', '足球', '羽毛球']
li3.extend(['橄榄球', '高尔夫球'])
print(li3)
# 传入一个可迭代的字符串,会将每个字符分别进行添加,成为一个元素
li4 = ['篮球', '乒乓球', '足球', '羽毛球']
str = '66666'
li4.extend(str)
print(li4)
# 输出结果
['篮球', '乒乓球', '足球', '羽毛球', '橄榄球', '高尔夫球']
['篮球', '乒乓球', '足球', '羽毛球', '球类']
['篮球', '乒乓球', '足球', '羽毛球', '橄榄球', '高尔夫球']
['篮球', '乒乓球', '足球', '羽毛球', '6', '6', '6', '6', '6']
删(remove,pop,clear)
remove删除元素
# 使用remove删除元素,参数为需要删除的元素
li = ['篮球', '乒乓球', '足球', '羽毛球']
li.remove('足球')
print(li)
# 输出结果
['篮球', '乒乓球', '羽毛球']
pop删除元素
# 使用pop删除元素,默认删除最后一个元素,可传入索引,指定删除某个元素
li = ['篮球', '乒乓球', '足球', '羽毛球']
li.pop()
print(li)
li1 = ['篮球', '乒乓球', '足球', '羽毛球']
li1.pop(1)
print(li1)
# 输出结果
['篮球', '乒乓球', '足球']
['篮球', '足球', '羽毛球']
clear清空元素
# 使用clear请空列表
li = ['篮球', '乒乓球', '足球', '羽毛球']
li.clear()
print(li)
# 输出结果
[]
改(直接通过索引修改元素的值)
# 将足球改为橄榄球
li = ['篮球', '乒乓球', '足球', '羽毛球']
li[2] = '橄榄球'
print(li)
# 输出结果
['篮球', '乒乓球', '橄榄球', '羽毛球']
查(index)
li = ['篮球', '乒乓球', '足球', '羽毛球']
# 查找足球元素并打印出来
print(li.index('足球'))
# 打印结果
2
列表的排序(sort)
列表的排序针对的是数值型的数据,如果是字符串或者其他类型,排序将没有任何意义
li = [5, 9, 58, 36, 12.3, 685, 0.55]
# 按从小到大进行排序
li.sort()
print(li)
li1 = [5, 9, 58, 36, 12.3, 685, 0.55]
# 按从大到小进行排序
li1.sort(reverse=True)
print(li1)
# 输出结果
[0.55, 5, 9, 12.3, 36, 58, 685]
[685, 58, 36, 12.3, 9, 5, 0.55]
列表的反转(reverse)
li = [5, 9, 58, 36, 12.3, 685, 0.55]
# 将列表元素进行反转
li.reverse()
print(li)
# 输出结果
[0.55, 685, 12.3, 36, 58, 9, 5]
遍历列表
遍历每个元素
li = ['篮球', '乒乓球', '足球', '羽毛球']
# 遍历列表中的每一个元素
for i in li:
print(i)
# 输出结果
篮球
乒乓球
足球
羽毛球
遍历列表中的索引及其对应的元素
li = ['篮球', '乒乓球', '足球', '羽毛球']
# 遍历列表中的每一个元素索引及其元素
for index, item in enumerate(li):
print(index, item)
# 输出结果
0 篮球
1 乒乓球
2 足球
3 羽毛球
列表推导式
使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表
# 生成列表
s = [x * 2 for x in range(10) if x > 3]
print(s)
# 在已有列表中找出大于10的数字
s1 = [8, 10, 12, 14, 16, 18]
s2 = [i for i in s1 if i > 10]
print(s2)
# 实例:在1-100里面找出能被3整除并且大于50的数,存入列表
li = [x for x in range(100) if x % 3 == 0 and x > 50]
print(li)
# 输出结果
[8, 10, 12, 14, 16, 18]
[12, 14, 16, 18]
[51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
二维列表的创建
for循环创建二维列表
# 创建一个空列表
arr = []
for i in range(4):
# 在arr列表中再创建一个空列表
arr.append([])
for j in range(5):
# 为内层列表添加元素
arr[i].append(j)
print(arr)
# 输出结果
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
列表推导式创建二维列表
# 使用列表推导式创建二维列表
arr = [[j for j in range(5)] for i in range(4)]
print(arr)
# 输出结果
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
补充知识
查看元素是否存在列表里面(返回布尔型True或者布尔型False)
li = ['篮球', '乒乓球', '足球', '羽毛球']
# 判断x是否在li列表中,在则返回True,不在返回Fales
x = '足球'
print(x in li)
# 判断y不存在列表li中,在则返回False,不在则返回True
y = '羽毛球'
print(y not in li)
# 输出结果
True
False
列表(list)的其他方法还有非常多,这里只是记录了一小部分,如果想深入学习,推荐去Python官方查看列表对象官方文档或者移步菜鸟教程学习更多的字符串操作