1.列表相关的运算符
- 列表是可以拿来加和乘的,其他的简单运算不能拿来操作列表
list1 = [10, 20, 30]
list2 = [15, 25]
print(list1 + list2) # [10, 20, 30, 15, 25]
print(list2 * 3) # [15, 25, 15, 25, 15, 25]
- 列表之间也是可以比较的
# 1) == 、!=
print([10, 20, 30] == [10, 30, 20]) # 输出False,因为列表是有序的,要顺序和值都一样才是True
print([10, 20, 30] == [10, 20, 30]) # 输出True,
# 2) <, >, <=, >=
# 列表比较大小,是比较第一对相关元素的大小
print([10, 20, 30] > [10, 30, 20]) # False
2. 列表的相关函数
- max和min
max 取列表中的最大值
min 取列表中的最小值
nums = [10, 2, 3, 42, 23, 53, 34, 26, 9]
print(max(nums))
print(min(nums))
- sum 函数
sum(数字序列) – 求序列中所有数字的总和
nums = [10, 2, 3, 42, 23, 53, 34, 26, 9]
print(sum(nums))
- sorted 函数
sorted(序列) – 将序列中的元素从小到大排序,产生一个新的列表
nums = [10, 2, 3, 42, 23, 53, 34, 26, 9]
print(sorted(nums)) # [2, 3, 9, 10, 23, 26, 34, 42, 53]
sorted(序列, reverse = True) - 将序列中的元素从大到小排序,产生新的列表
print(sorted(nums, reverse=True)) # [53, 42, 34, 26, 23, 10, 9, 3, 2]
- len 函数
len(序列) - 获取序列中元素的个数
print(len([1, 2, 3])) # 3
- list 函数
list(序列) - 将序列的元素作为列表的元素创建一个新的列表
print(list('abc')) # ['a', 'b', 'c']
print((list(range(3)))) # [0, 1, 2]
3.列表的相关方法
- 列表.clear() - 清空列表
nums = [10, 20, 30]
nums.clear()
print(nums) # []
- 列表.copy() - 复制列表产生一个一模一样的新列表
列表.copy() - 浅拷贝
列表[:]、 列表*1、列表+[] 都是浅拷贝
nums = [10, 20, 30]
new_nums = nums.copy()
print(new_nums) # [10, 20, 30]
print(id(nums), id(new_nums)) # 1309285808768 1309285806336
# 两个列表地址不一样
num2 = nums
print('num2', id(num2)) # 1309285808768
# nums 和 num2 地址一样
- 列表.count(元素) - 统计列表中指定元素的个数
nums = [10, 20, 30]
print(nums.count(10)) # 1
- 列表.extend(序列) - 将序列中的元素全部添加到列表中
print(nums) # [10, 20, 30]
nums.extend([10, 30])
print(nums) # [10, 20, 30, 10, 30]
nums.extend('edg')
print(nums) # [10, 20, 30, 10, 30, 'e', 'd', 'g']
- 列表.index(元素) - 获取元素在列表中的下标值(0开始的下标值)
补充:如果元素有多个返回第一个下标,如果元素不存在,会报错的
nums = [10, 20, 30, 10, 30, 'e', 'd', 'g']
print(nums.index(10)) # 0
# print(nums.index(40)) # ValueError: 40 is not in list
- 列表.reverse() - 列表逆序
nums.reverse()
print(nums) # ['g', 'd', 'e', 30, 10, 30, 20, 10]
- 排序
列表.sort() / 列表.sort(reverse=True)
sorted(序列) / sorted(序列, reverse=True)
nums = [10, 28, 90, 67, 20]
result = sorted(nums)
print(nums) # [10, 28, 90, 67, 20]
print(result) # [10, 20, 28, 67, 90]
nums = [10, 28, 90, 67, 20]
result = nums.sort()
print(nums) # [10, 20, 28, 67, 90]
print(result) # None
4.列表推导式
列表推导式 - 快速创建列表的表达式
- 推导式结构1
[表达式 for 变量 in 序列] - 让变量去序列中取值,一个一个的取,取完为止
每将一个值就将表达式的值作为列表的一个元素
# 练习: 使用列表推导式获取nums中所有元素的个位数
nums = [23, 89, 90, 56, 41, 802]
nums2 = [x % 10 for x in nums]
print(nums2) # [3, 9, 0, 6, 1, 2]
- 推导式结构2
[表达式 for 变量 in 序列 if 条件语句]
创建一个列表;变量去序列取值,一个一个的取,取完为止,每去一个值就判断条件语句是否为True,就计算表达式的结果为列表的元素
nums = [23, 89, 90, 56, 41, 802]
result = [x for x in nums if x % 2]
print(result) # [23, 89, 41]
5. 元组
元组就是不可变的列表
查、in和not in、数学运算、比较运算、相关函数 - 元组都支持
特别注意:
# 空元组
t1 = ()
print(t1, type(t1))
# 有一个元素的元组 (元素, )
t2 = (10,) # 要有一个逗号才行,没有逗号是 10 <class 'int'>
print(t2, type(t2)) # (10,) <class 'tuple'>