8. 列表推导式
- 概念:用一条简洁语句,从可迭代对象中,生成新列表的语法结构。
- 语法格式:[ 表达式 for 变量 in 可迭代对象 ]
# 需求:让nums列表中所有的元素,都变为原来的2倍
# 方式一:用map函数
nums = [10, 20, 30, 40]
result = list(map(lambda n: n * 2, nums))
print(result)
# 方式二:使用for循环结合append方法
nums = [10, 20, 30, 40]
result = []
for n in nums:
result.append(n * 2)
print(result)
# 方式三:使用列表推导式(列表推导式就是上面 for + append 的简写形式)
nums = [10, 20, 30, 40]
result = [n * 2 for n in nums]
print(result)
# 带条件的列表推导式
nums = [10, 20, 30, 40]
result = [n * 2 for n in nums if n > 20]
print(result)
# 字典推导式
names = ['张三', '李四', '王五']
scores = [60, 70, 80]
result = {names[i]: scores[i] for i in range(len(names))}
print(result)
# 集合推导式
names = ['张三', '李四', '王五']
result = {n + '!' for n in names}
print(result)
names = ['张三', '李四', '王五']
# 注意:Python中没有元组推导式,下面这种写法叫:生成器(后面会仔细讲)
result = (n + '!' for n in names)
print(result)
9. 常用内置函数梳理
以下函数是截至目前,我们需要掌握的一些常用函数,注意:下面这些并不是所有,我们后面还会学习到更多的常用内置函数。(详细讲解请参考视频教程)
9.1. 输入与输出
| 函数 / 参数 |
功能说明 |
| print |
输出指定内容 |
| objects |
要输出的内容 |
| sep |
输出多个内容时的分隔符 |
| end |
结尾追加的内容 |
| file |
输出位置(默认控制台) |
| flush |
是否立即刷新输出 |
| input() |
获取用户输入 |
9.2. 类型转换
| 函数 |
功能说明 |
| int() |
转为整数 |
| float() |
转为浮点数 |
| str() |
转为字符串 |
| bool() |
转为布尔值 |
| list() |
转为列表 |
| tuple() |
转为元组 |
| set() |
转为集合 |
| dict() |
转为字典 |
9.3. 数学相关
| 函数 |
功能说明 |
| abs() |
取绝对值 |
| round() |
银行家舍入法:小于5舍,大于5入,等于5看奇偶(奇入偶舍) |
| pow(a, b) |
计算 a 的 b 次方 |
| pow(a, b, c) |
计算 a 的 b 次方后,再对 c 取模 |
| divmod(a, b) |
返回 (商, 余数) |
| max() |
最大值(支持 key) |
| min() |
最小值(支持 key) |
| sum() |
求和 |
| map() |
加工一组数据 |
| filter() |
按条件过滤数据 |
| reduce() |
合并计算(需 functools.reduce) |
| sorted() |
排序(支持 key) |
9.4. 数据容器相关
| 函数 |
功能说明 |
| len() |
获取容器中元素个数 |
| range() |
生成数字序列(常用于循环) |
| enumerate() |
为序列添加索引 |
| zip() |
将多个序列一一配对 |
9.5. 类型判断与对象相关
| 函数 |
功能说明 |
| type() |
查看对象类型 |
| isinstance(obj, type) |
判断对象是否属于某个类型 |
| issubclass(A, B) |
判断类 A 是否为类 B 的子类 |
| id() |
查看对象的内存地址 |
9.6. 逻辑判断相关
| 函数 |
功能说明 |
| all() |
所有元素为真时返回 True |
| any() |
至少一个为真返回 True |
9.7. 字符串辅助相关
| 函数 |
功能说明 |
| ord() |
获取字符的 Unicode 编码值 |
| chr() |
将 Unicode 编码值转换为字符 |