背景
前两天,我们一起学习了 Python 的变量、运算符与数据类型 以及程序设计中最常用的 分支语句和循环语句。
今天,我们一起来学习 Python 中最常用的一种结构:列表,以及跟它相近的另外一种结构:元组。
代码实现
1. 列表
- 列表是有序集合,没有固定大小,能够保存任意数量任意类型的 Python 对象。
创建列表
- 创建一个普通列表
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week) # ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
number = [2, 3, 4, 5, 6, 7]
print(number) # [2, 3, 4, 5, 6, 7]
- 创建一个混合列表
mix = [1, 'lsgo', 3.14, [1, 2, 3]]
print(mix) # [1, 'lsgo', 3.14, [1, 2, 3]]
- 创建一个空列表
empty = []
print(empty) # []
向列表添加元素
-
append(obj)
方法:在列表末尾添加新的对象
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
week.append('Thursday')
print(week) # ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Thursday']
print(len(week)) # 6
-
extend(seq)
方法:在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
week.extend(['Thursday', 'Sunday'])
print(week) # ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Thursday', 'Sunday']
-
insert(index, obj)
方法:
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
week.insert(0, 'Sunday')
print(week) # ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
从列表中获取元素
- 跟数组一样,我们可以通过元素的索引值,从列表获取单个元素,注意,列表索引值是从0开始的。
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week[0]) # Monday
从列表中删除元素
-
remove(obj)
方法:移除列表中某个值的第一个匹配项
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
week.remove('Monday')
print(week) # ['Tuesday', 'Wednesday', 'Thursday', 'Friday']
-
del var1[, var2 ……]
语句:删除单个或多个对象
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
del week[0], week[1]
print(week) # ['Tuesday', 'Thursday', 'Friday']
-
pop([index=-1])
方法:移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
day = week.pop()
print(day) # Friday
day = week.pop(0)
print(day) # Monday
day = week.pop(-2)
print(day) # Wednesday
列表分片
例子1:
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(week[1:3]) # ['Tuesday', 'Wednesday']
print(week[:3]) # ['Monday', 'Tuesday', 'Wednesday']
print(week[3:]) # ['Thursday', 'Friday']
print(week[:]) # week的拷贝 ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
例子2:
list1 = [123, 456, 789, 213]
list2 = list1
list3 = list1[:]
print(list2) # [123, 456, 789, 213]
print(list3) # [123, 456, 789, 213]
list1.sort()
print(list2) # [123, 213, 456, 789]
print(list3) # [123, 456, 789, 213]
列表的常用操作符
- 比较操作符
- 逻辑操作符
- 连接操作符
+
- 重复操作符
*
- 成员关系操作符
in
、not in
list1 = [123, 456]
list2 = [234, 123]
print(list1 > list2) # False
list3 = [123, 456]
print((list1 < list2) and (list1 == list3)) # True
list4 = list1 + list2 # extend()
print(list4) # [123, 456, 234, 123]
list5 = list3 * 3
print(list5) # [123, 456, 123, 456, 123, 456]
list3 *= 3
print(list3) # [123, 456, 123, 456, 123, 456]
print(123 in list3) # True
print(456 not in list3) # False
列表的其它方法
-
count(obj)
方法:统计某个元素在列表中出现的次数
list1 = [123, 456] * 3
print(list1) # [123, 456, 123, 456, 123, 456]
num = list1.count(123)
print(num) # 3
-
index(obj[, start[, end]])
方法:从列表中找出某个值第一个匹配项的索引位置
list1 = [123, 456] * 5
print(list1.index(123)) # 0
print(list1.index(123, 1)) # 2
print(list1.index(123, 3, 7)) # 4
-
reverse()
方法:反向列表中元素
list1 = [123, 456, 789]
list1.reverse()
print(list1) # [789, 456, 123]
-
sort(key=None, reverse=False)
方法:对原列表进行排序
list1 = [123, 456, 789, 213]
list1.sort()
print(list1) # [123, 213, 456, 789]
list1.sort(reverse=True)
print(list1) # [789, 456, 213, 123]
2. 元组
创建和访问一个元组
- Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串。
- 元组使用小括号,列表使用方括号。
- 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
tuple1 = (1, 2, 3, 4, 5, 6, 7, 8)
print(tuple1[1]) # 2
print(tuple1[5:]) # (6, 7, 8)
print(tuple1[:5]) # (1, 2, 3, 4, 5)
tuple2 = tuple1[:]
print(tuple2) # (1, 2, 3, 4, 5, 6, 7, 8)
- 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:
例子1:
temp = (1)
print(type(temp)) #
temp = 2, 3, 4, 5
print(type(temp)) #
temp = []
print(type(temp)) #
temp = ()
print(type(temp)) #
temp = (1,)
print(type(temp)) #
例子2:
print(8 * (8)) # 64
print(8 * (8,)) # (8, 8, 8, 8, 8, 8, 8, 8)
更新和删除一个元组
例子1:
week = ('Monday', 'Tuesday', 'Thursday', 'Friday')
week = week[:2] + ('Wednesday',) + week[2:]
print(week) # ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday')
例子2:
t1 = (1, 2, 3, [4, 5, 6])
print(t1) # (1, 2, 3, [4, 5, 6])
t1[3][0] = 9
print(t1) # (1, 2, 3, [9, 5, 6])
元组相关的操作符
- 比较操作符
- 逻辑操作符
- 连接操作符
+
- 重复操作符
*
- 成员关系操作符
in
、not in
t1 = (2, 3, 4, 5)
t2 = ('老马的程序人生', '小马的程序人生')
t3 = t1 + t2
print(t3) # (2, 3, 4, 5, '老马的程序人生', '小马的程序人生')
总结
到此为止,列表和元组的内容就介绍完了。今天就到这里呀!大家加油,See You!
相关图文:
- 资料分享:数学建模资料分享 -- 图论部分
- 资料分享:数学建模资料分享 -- 神经网络部分
- 如何利用 C# 实现 K 最邻近算法?
- 如何利用 C# 实现 K-D Tree 结构?
- 如何利用 C# + KDTree 实现 K 最邻近算法?
- 如何利用 C# 对神经网络模型进行抽象?
- 如何利用 C# 实现神经网络的感知器模型?
- 如何利用 C# 实现 Delta 学习规则?
- 如何利用 C# 实现 误差反向传播 学习规则?
- 如何利用 C# 爬取带 Token 验证的网站数据?
- 如何利用 C# 向 Access 数据库插入大量数据?
- 如何利用 C# + Python 破解猫眼电影的反爬虫机制?