列表的相关函数
-
列表(序列)相关函数:max、min、sum、len、sored、reversed、list
- max
max(序列): - 获取序列中最大的元素(序列中的元素本身必须支持比较运算,并且元素之间可以比较大小)
例如:
nums = [50, 46, 52, 9, 13] print(max(nums)) # 52- min
min(序列) - 获取序列中最小的元素
例如:
print(min(nums)) # 9- sum
sum(序列) - 求序列中所有元素的和(序列中的元素必须是数字)
例如:
print(sum(nums)) # 170- len
len(序列) - 求序列中元素的个数
例如:
print(len([10, 20 , 'ace', [10, 20], range(3)])) # 5- sored
sorted(序列) - 将序列中的元素从小到大排序,返回一个排完序以后的新列表
sorted(序列,reverse=True) - 将序列中的元素从大到小排序,返回一个排完的新列表
例如:
nums = [50, 46, 52, 9, 13] new_nums = sorted(nums) print(nums, new_nums) new_nums = sorted(nums, reverse=True) print(nums, new_nums)- reversed
reversed(序列) - 将序列中的元素倒序,产生一个新的迭代器(序列)
例如:
nums = [50, 46, 52, 9, 13] reversed(nums) print(nums)- list
list(序列) - 将其他序列转换成列表list(序列) - 将其他序列转换成列表
例如:
print(list('ace')) print(list(range(1, 4))) -
列表相关方法
- 列表.clear() - 清空列表
例如:
names = ['罗小黑战记', '海贼王', '一人之下', '进击的巨人', '死亡笔记'] names.clear() print(names) # []- 列表.copy() - 复制原列表产生一个一模一样的新列表
例如:
names = ['罗小黑战记','海贼王','一人之下','进击的巨人','死亡笔记'] new_names = names.copy() print(new_names) #['罗小黑战记', '海贼王', '一人之下', '进击的巨人', '死亡笔记']- 列表.count(元素) - 统计指定元素在列表中出现的次数
例如:
names = ['罗小黑战记', '海贼王', '海贼王', '海贼王', '一人之下', '进击的巨人', '死亡笔记'] print(names.count('死亡笔记')) # 1 print(names.count('死神')) # 0 print(names.count('海贼王')) # 3- 列表.extend(序列) - 将序列中所有的元素都添加到列表中
例如:
names = ['罗小黑战记', '海贼王', '一人之下', '进击的巨人', '死亡笔记'] names.extend(['妖精的尾巴']) print(names)- 列表.inde(元素) - 获取指定元素对应的下标(从0开始的下标)
例如:
names = ['罗小黑战记', '海贼王', '一人之下', '进击的巨人', '死亡笔记'] print(names.index('一人之下')) # 2 # print(names.index('火影忍者')) # 报错:ValueError: '火影忍者' is not in list print(names.index('海贼王')) # 多个只获取第一个- 列表.reverse() - 将列表倒叙(不会产生新的列表)
例如:
names = ['罗小黑战记', '海贼王', '一人之下', '进击的巨人', '死亡笔记'] names.reverse() print(names) # ['死亡笔记', '进击的巨人', '一人之下', '海贼王', '罗小黑战记']- 列表.sort() - 将列表从小到大排序
例如:
nums = [10, 32, 90, 40, 70, 50] names.sort() print(nums) # [10, 32, 90, 40, 70, 50] -
列表推导式
列表推导式 - 用来创建列表的表达式
推导式的引用:创建列表、元素筛选、元素的变换
- 推导式通推导式通用格式1
[表达式 for 变量 in 序列] 创建列表的原理: list1 = [] for 变量 in 序列: list1.append(表达式)
例如:
list1 = [x for x in range(4)]
print(list1) # [0, 1, 2, 3]
list2 = [2*x + 3 for x in range(4)]
print(list2) # [3, 5, 7, 9]
list3 = [x*2 for x in 'abc']
print(list3) # ['aa', 'bb', 'cc']
练习:已知列表scores = [89, 34, 56, 23, 90, 100],将列表中的成绩转换成十分制的值
scores = [89, 34, 56, 23, 90, 100]
y = [x/10 for x in scores]
print(y) # [8.9, 3.4, 5.6, 2.3, 9.0, 10.0]
2. 推导式通用格式2
[表达式 for 变量 in 序列 if 条件语句]
原理:
list1 = []
for 变量 in 序列:
if 条件语句:
list1.append(表达式)
例如:
nums = [23, 89, 80, 25, 9, 13]
new_nums = [x for x in nums if x % 2 != 0]
print(new_nums)
list1 = [12, 'abc', True, 0, 0.00, 0.02, '', [], [1,2]]
y = [x for x in list1 if x]
print(y) # [12, 'abc', True, 0.02, [1, 2]]
补充:三目运算符
C的三目运算:
表达式1?表达式2:表达式3 -> 如果表达式1的值是0整个运算表达式的结果是表达式3,
否则整个运算表达式的解说是2
变量 = 表达式2 if 表达式1 else 表达式3
age = 27
result ='成年' if age >= 18 else '未成年'
print(result) # 成年
总理
-
整体变化 - 将原序列中的元素通过统一的规则转换成一个新的序列
方案:
[表达式 for 变量 in 序列] - 表达式 用来描述新序列中的元素和原序列元素之间的规则 nums = [23, 40, 50, 45, 13, 933] result = [x % 10 for x in nums] print(result) # [3, 0, 0, 5, 3, 3] -
部分变换(按照两种不同的方式变换)
方案:
[三目运算 for 变量 in 序列] list1 = [933, 'ace', 45, '123', [10,30], 1.45] list2 = [x*10 if type(x) in [int, float] else x for x in list1] print(list2) # [9330, 'ace', 450, '123', [10, 30], 14.5] -
筛选、删除
方案:
[表达式 for 变量 in 序列 if 条件语句] score = [56, 50, 78, 89, 42, 30] result = [x for x in score if x >= 60] print(result) # [78, 89]
作业
1.创建一个列表,列表中有10个数字, 保证列表中元素的顺序,对列表进行排重,并对列表使用进行降序排序
nums = [70, 88, 91, 70, 107, 234, 91, 177, 282, 197]
nums1 = []
for x in nums:
if x not in nums1:
nums1.append(x)
nums1 = sorted(nums1, reverse=True)
print(nums1)
2.利用列表推导式, 完成以下需求
a. 生成一个存放1-100中各位数为3的数据列表
z = [x for x in range(3, 103, 10)]
print(z)
b. 利用列表推到是将 列表中的整数提取出来
list1 =[True, 17, "hello", "bye", 98, 34, 21]
z = [x for x in list1 if type(x) == int]
print(z)
c.利用列表推导式 存放指定列表中字符串的长度
list1 =[True, 17, "hello", "bye", 98, 34, 21]
z = [x for x in list1 if type(x) == int]
print(z)
d. 利用列表推导式删除列表中整数个位数小于5的元素
k = [24, 'abc', 99, True, 21, 38, 'hello']
z = [x for x in k if type(x) != int or type(x) == int and x % 10 > 5]
# type(x) == int and x % 10 > 5
print(z)
3.已知代码如下,请回答出各个print的结果 并说明原因
nums = [17, 39, 28, 51]
nums2 = nums
nums2.pop()
print(len(nums))
"""
nums = [17, 39, 28, 51]
nums2 = [17, 39, 28, 51]
nums2 = [17, 28, 28]
print = len nums == 17 39 28 == 3
"""
本文详细介绍了Python中列表的基本操作函数如max、min、sum、len等,以及sorted、reversed、list等,同时涵盖了列表方法如clear、copy、count、extend、index、reverse、sort和列表推导式的应用实例。通过实例演示如何对列表进行去重、排序、筛选和元素变换,适合初学者和进阶者学习列表处理技巧。
869

被折叠的 条评论
为什么被折叠?



