❝Python入门第十六课,主要是学习了函数的进阶知识:列表推导式,以及整理出了初学阶段需要掌握的一些常用函数。
列表推导式
什么是列表推导式?用一条简洁语句来说,可迭代对象中,生成新列表的语法结构。
语法格式:
[ 表达式 for 变量 in 可迭代对象 ]
示例代码:
1️⃣ 让 nums 列表中所有的元素,都变为原来的2倍
nums = [1, 2, 3, 4, 5]# 方式一:用map函数result = map(lambda num: num * 2, nums)print(type(result), list(result)) # <class 'map'> [2, 4, 6, 8, 10]# 方式二:使用for循环结合append方法print('\nnums', nums)result = []for num in nums: result.append(num * 2)print(type(result), result) # <class 'list'> [2, 4, 6, 8, 10]# 方式三:使用列表推导式(实际上列表推导式就是 for + append 的简写形式)print('\nnums', nums)result = [num * 2for num in nums]print(type(result), result) # <class 'list'> [2, 4, 6, 8, 10]
2️⃣ 带条件的列表推导式
nums = [1, 2, 3, 4, 5]result = [num * 2for num in nums if num > 2]print(type(result), result) # <class 'list'> [6, 8, 10]
3️⃣ 字典推导式
names = ['张三', '李四', '王五']scores = [60, 70, 80]result = {names[i]: scores[i] for i in range(len(names))}print(type(result), result) # <class 'dict'> {'张三': 60, '李四': 70, '王五': 80}
4️⃣ 集合推导式
names = ['张三', '李四', '王五']result = {name + '!'for name in names}print(type(result), result) # <class 'set'> {'王五!', '李四!', '张三!'}
5️⃣ 注意:没有元组推导式,下面形似元组推导式的写法实际上叫:生成器(后面会介绍)
names = ['张三', '李四', '王五']result = ( name + '!'for name in names)print(type(result), result) # <class 'generator'> <generator object <genexpr> at 0x0000014946DEA8E0>
常用内置函数梳理
下面为大家整理出了初学阶段需要掌握的一些常用函数,当然后面随着继续学习持续学习还会接触到更多常用内置函数。
输入输出
| 函数/参数 | 功能说明 |
|---|
print() | |
objects | |
sep | |
end | |
file | |
flush | |
input() | |
部分示例代码:
print(1, 2, 3, sep=' + ', end='\n\n') # 1 + 2 + 3
类型转换
| 函数/参数 | 功能说明 |
|---|
int | |
float() | |
str() | |
bool() | |
list() | |
tuple() | |
set() | |
dict() | |
数学相关
| 函数/参数 | 功能说明 |
|---|
abs() | |
round() | 银行家舍入法:小于5舍,大于5入,等于5看奇偶(奇入偶舍) |
pow(a, b) | |
pow(a, b, c) | |
divmod(a, b) | |
max() | |
min() | |
sum() | |
map() | |
filter() | |
reduce() | |
sorted | |
部分示例代码:
print(abs(-1), abs(0), abs(1), abs(-3.14)) # 1 0 1 3.14print(round(3.14, 1), round(3.16, 1), round(3.15, 1)) # 3.1 3.2 3.1print(pow(2, 3), pow(2, 3, 1)) # 8 0print(divmod(10, 2)) # (5, 0)print(divmod(10, 3)) # (3, 1)print(divmod(10, 4)) # (2, 2)items = [1, 2, 3, 4, 5]print(max(items)) # 5print(min(items)) # 1print(sum(items)) # 15print(list(map(lambda x: x * 2, items))) # [2, 4, 6, 8, 10]print(list(filter(lambda x: x % 2 != 0, items))) # [1, 3, 5]print(reduce(lambda x, y: x + y, items)) # 15print(sorted(items)) # [1, 2, 3, 4, 5]print(sorted(items, reverse=True)) # [5, 4, 3, 2, 1]
数据容器相关
| 函数/参数 | 功能说明 |
|---|
len() | |
range() | |
enumerate() | |
zip() | |
类型判断与对象相关
| 函数/参数 | 功能说明 |
|---|
type() | |
isinstance(obj, type) | |
issubclass(A, B) | |
id() | |
判断逻辑相关
字符串辅助相关