Python推导式
Python 推导式
Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。
Python 支持各种数据结构的推导式:
- 列表(list)推导式
- 字典(dict)推导式
- 集合(set)推导式
- 元组(tuple)推导式
列表推导式
格式:
1 | [表达式 for 变量 in 列表] |
- out_exp_res:列表生成元素表达式,可以是有返回值的函数。
- for out_exp in input_list:迭代 input_list 将 out_exp 传入到 out_exp_res 表达式中。
- if condition:条件语句,可以过滤列表中不符合条件的值。
实例: 过滤掉长度小于或等于3的字符串列表,并将剩下的转换成大写字母
1 | names = ['Bob','Tom','alice','Jerry','Wendy','Smith'] |
结果:
实例: 计算 30 以内可以被 3 整除的整数
1 | multiples = [i for i in range(30) if i % 3 == 0] |
结果:
字典推导式
格式:
1 | { key_expr: value_expr for value in collection } |
实例: 使用字符串及其长度创建字典:
1 | listdemo = ['Google','TC', 'Taobao'] |
结果:
实例: 提供三个数字,以三个数字为键,三个数字的平方为值来创建字典
1 | dic = {x: x**2 for x in (2, 4, 6)} |
结果:
集合推导式
格式:
1 | { expression for item in Sequence } |
实例: 计算数字 1,2,3 的平方数
1 | setnew = {i**2 for i in (1,2,3)} |
结果:
实例: 判断不是 abc 的字母并输出
1 | a = {x for x in 'abracadabra' if x not in 'abc'} |
结果:
元组推导式(生成器表达式)
元组推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。
格式:
1 | (expression for item in Sequence ) |
元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 ()
圆括号将各部分括起来,而列表推导式用的是中括号 []
,另外元组推导式返回的结果是一个生成器对象。
实例: 生成一个包含数字 1~9 的元组
1 | a = (x for x in range(1,10)) |
结果:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 木易&馬也!