推导式

python 推导式是一种独特的处理方式,可以从一个数据序列构建另一个新的数据序列的结构体

python 支持的数据结构推导式:

  • 列表
  • 元组
  • 字典
  • 集合

列表推导式


[表达式 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_res in input_list:迭代 input_list 将 out_exp 传入到 out_exp_res 表达式中
  • if condition:条件语句,可以过滤掉列表中不符合条件的元素

字典生成式


# 使用字符串创建字典

listdemo = ['Google','Runoob', 'Taobao']

# 将列表中各字符串为键,各字符串长度为值,组成键值对

dict1 = {key:len(key) for key in listdemo}

print(dict1)

# 提供3个数以3个数为键,3个数的平方为值

dict2 = {key:key**2 for key in (2,3,4)}

print(dict2)

集合推导式


# 计算数字1,2,3的平方

set_demo = {key**2 for key in [1,2,3]}

print(set_demo)

# 判断不是a,b,c的字母并输出

set_demo1 = {i for i in 'abcderfg' if i not in 'a,b,c'}

print(set_demo1)

元组推导式(生成器表达式)


元组推导式可以利用 range 区间、列表、字典、集合等按照要求快速生成一个元组

a = (x for x in range(1,10))  
a  
<generator object <genexpr> at 0x7faf6ee20a50>  # 返回的是生成器对象  
  
tuple(a)       # 使用 tuple() 函数,可以直接将生成器对象转换成元组  
(1, 2, 3, 4, 5, 6, 7, 8, 9)
posted @ 2023-06-10 13:04  鱼仔_yuzai  阅读(49)  评论(0)    收藏  举报