列相关操作
一、列的相关操作
1)、数学运算: + / *
-
1、列表1 +列表2 - 将列表1和列表2中元素合并成一个新的列表
-
2、列表 * n / n*列表 - n个指定列表合并成一个新的列表(列表中的元素重复n次产生一个新的列表)
2)、比较运算符 : < > <= >= == !=
- 1)比较相等: == !=
- 2)比较大小: < > <= >=
- 两个列表比较大小比较的是第一对不相等的元素的大小
3)、in和not in
- 1)元素 in 列表 - 判断列表中是否存在指定元素
- 2)元素 not in 列表 - 判断列表中是否不存在指定元素
print([10,20,30] == [20, 10, 30]) #False
list1 = [10,20,30]
list2 = [11,200]
print(list1 > list2) #False
print(10 in [100,200]) # False
print(10 in [[10,100],200]) # False
# 已知一个列表保存了多个学生的姓名,要求去掉列表中重复的名字
names = ['小明', '张三', '李四', '张三', '张三', '小明', '王五', '王五']
new_names = []
for name in names:
if name not in new_names:
new_names.append(name)
print(new_names)
# 练习:提取两个列表的公共元素,产生一个新的列表
A = [10, 23, 89, 67, 10, 20]
B = [78, 90, 23, 88, 10]
list1 = []
for x in A:
if x in B and x not in list1:
list1.append(x)
print(list1)
二、列的相关函数
1、sum(列表) - 求列表中所有元素的和(要求列表中所有的元素都必须是数字)
- 针对所有的数字序列都有效(包括range)
scores = [29,30,21]
print(sum(scores))
2、max、min
-
max(列表) - 求列表中值最大的元素
-
max(数据1,数据2,数据3…) - 求多个数据中的最大值
scores = [29,20,12] print(max(scores)) a,b,c = 29,18,79 print(max(scores))
3、sorted(列表) - 将列表中的所有元素从小到达排序,产生一个新的列表(不会修改原列表)
-
sorted (列表,reverse = True) - 将列表中的所有的元素从大到小排序,产生一个新的列表(不会修改原列表)
scores = [29, 30,28] new_scores = sorted (scores) print(new_scores) # [28,29,30] new_scores = sorted (scores,reverse = True) print(new_scores) #[30,29,28]
4、list(序列) - 将指定数据转换成列表
-
数据:必须是容器型数据类型的数据(str 、 range)
-
所有的序列都可以转换成列表:转换的时候会将序列中的元素作为列表的元素
三、列表的相关方法
方法的使用方式: xxx . xxx()
列表相关方法: 列表.xxx()
- 1、列表.clear() - 清空列表
- 2、列表.copy - 复制指定的列表产生一个一模一样的新的列表并且返回
- 列表[:] == 列表.copy() == 列表*1 == 列表+[]
- 3、列表.count(元素) - 统计列表中指定元素的个数
- 4、列表.extend(序列) - 将序列中的元素全部添加到列表的最后
nums = [29,30,23,34]
print(nums.count(9)) # 打印显示 0
a=[30,28]
a.extend([34,11])
print(a) # [34,11,30,28]
-
5、列表.index[元素] - 获取指定元素在列表中的下标值(0开始的下标值)
-
6、列表.reverse() - 将列表倒序
a=[30,28,11,23] print(a.index(28)) #1 a=[30,28,11,23] a.reverse() print(a) #[23,11,28,30]
-
7、列表.sort()
-
列表.sort(revers = True)
a=[30,28,11,23] new_a = sorted(a) print(new_a,a) #[11, 23, 28, 30] [30, 28, 11, 23] a=[30,28,11,23] a.sort() print(a) #[11, 23, 28, 30] a=[30,28,11,23] a.sort(reverse=True) print(a) [30, 28, 23, 11]
-
列表推导式 - 快速创建列表的表达式
-
1、结构1:[表达式 for 变量 in 序列]
#[表达式 for 变量 in 序列] - 创建列表,列表中的元素就是让变量取序列中的值,取一个值就计算一次表示是的结果,这个结果就是列表的元素 result = [10 for x in range(4)] print(result) #[10,10,10,10] result = [10*x for x in range(4)] print(result) #[0,10,20,30] #提取 nums的元素的个位数 nums = [78,34,661,90,75] result = [ x % 10 for x in nums] print(result) # [8, 4, 1, 0, 5]
-
2、结构2: [表达式 for 变量 in 序列 if 条件语句]
-
创建一个列表,列表的元素就是变量中去序列中取值,取一个值判断一次条件是否成立,成立就计算一次表达式结果,并且将结果作为列表的元素
result = [x for x in range(10) if x % 2] print(result) #[1,3,5,7,9] #if 语句结果是True,就不执行下一个代码;False就执行下一段代码 #提取偶数中的个位数 nums = [78,34,661,90,75] result = [x % 10 for x in nums if x % 2 == 0] print(result)
-