Python的推导式是一种特殊的数据处理方式,是可以从一个数据序列构建另一个新的数据序列的结构体。
Python支持各种数据结构的推导式:
- 列表(list)推导式
- 字典(dict)推导式
- 集合(set)推导式
- 元组(tuple)推导式
列表推导式
列表推导式的格式如下:
[表达式 for 变量 in 列表] [out_exp_res for out_exp in input_list] 或者 [表达式 for 变量 in 列表 if 条件] [out_exp_res for out_exp in input_list if condition]
- out_exp_res:列表生成元素表达式,可以是有返回值的函数。
- for out_exp in input_list:迭代 input_list 将 out_exp 传入到 out_exp_res 表达式中。
- if condition:条件语句,可以过滤列表中不符合条件的值。
过滤掉长度小于或等于5的字符串列表,并将剩下的转换成大写字母:
实例:
nba_warriors = ['Curry','Durant','Green','Thompson','Wiggins','Wiseman']
new_warriors = [name.upper()for name in nba_warriors if len(name)>6]
print(new_warriors)
执行结果为:
['THOMPSON', 'WIGGINS', 'WISEMAN']
计算100以内可以被4整除的整数:
实例:
num_range = [i for i in range(100) if i % 4 == 0]
print(num_range)
执行结果为:
[0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92, 96]
字典推导式
字典推导式的格式为:
{ key_expr: value_expr for value in collection } 或 { key_expr: value_expr for value in collection if condition }
使用字符串和字符串长度创建字典:
nba_warriors = ['Curry','Durant','Green','Thompson','Wiggins','Wiseman']
# 将列表中各字符串值为键,各字符串的长度为值,组成键值对
new_warriors = {key:len(key) for key in nba_warriors}
new_warriors
执行结果为:
{'Curry': 5,
'Durant': 6,
'Green': 5,
'Thompson': 8,
'Wiggins': 7,
'Wiseman': 7}
提供5个数字,以5个数字为键,5个数字的立方为值来创建字典:
实例:
dict = {x: x**3 for x in (1,2,3,4,5)}
print(dict)
type(dict)
执行结果为:
{1: 1, 2: 8, 3: 27, 4: 64, 5: 125}
dict
本次的分享到此结束,老铁们可以点赞收藏一下哈,方便以后及时复习,没有关注的老铁关注一下,以后会不断更新。学习Python与大数据的路上,小小白与你同行,我们一起加油,有什么问题或者是感受也可以在评论区打出来,我们一起交流一下,共同进步。
2023,新的一年,新的起点,扬帆起航,共创辉煌,加油吧老铁们!