Python推导式

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

Python 支持各种数据结构的推导式:

  • 列表(list)推导式

  • 字典(dict)推导式

  • 集合(set)推导式

  • 元组(tuple)推导式

1、列表推导式

列表推导式格式为:

[exp for item in Sequence if condition]

  • res:列表生成元素表达式,可以是有返回值的函数。

  • for item in Sequence:迭代 Sequence 将 item 传入到 exp 表达式中。

  • if condition:条件语句,可以过滤列表中不符合条件的值。

#过滤掉长度小于或等于3的字符串列表,并将剩下的转换成大写字母:
names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
new_names = [name.upper() for name in names if len(name)>3]
print(new_names)

#计算 30 以内可以被 3 整除的整数:
multiples = [i for i in range(1, 31) if i % 3 == 0]
print(multiples)

2、字典推导式

字典推导基本格式:

{ key: value for key in Sequence if condition }

# 将列表中各字符串值为键,各字符串的长度为值,组成键值对
listdemo = ['karen','jack', 'marry']
newdict = {key:len(key) for key in listdemo}
print(newdict)#{'karen': 5, 'jack': 4, 'marry': 5}


#提供三个数字,以三个数字为键,三个数字的平方为值来创建字典:
dic = {x: x**2 for x in range(1, 7) if x % 2 == 0}
print(dic)#{2: 4, 4: 16, 6: 36}

3、集合推导式

集合推导式基本格式:

{ exp for item in Sequence if condition}

#计算数字 1,2,3 的平方数:
setnew = {i**2 for i in (1,2,3)}
print(setnew)#{1, 4, 9}
​
​
#判断不是 abc 的字母并输出:
a = {x for x in 'abracadabra' if x not in 'abc'}
print(a)#{'d', 'r'}

4、元组推导式

元组推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。

元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [ ],另外元组推导式返回的结果是一个生成器对象。

元组推导式基本格式:

(exp for item in Sequence if condition)

#生成一个包含数字 1~9 的元组
a = (x for x in range(1,10))
print(a)#返回的是生成器对象
print(tuple(a))#使用 tuple() 函数,可以直接将生成器对象转换成元组

Python推导是一种简洁的语法糖,可以从一个数据序列构建另一个新的数据序列。常见的推导包括列表推导、字典推导和集合推导。列表推导可以通过对一个列表进行迭代和筛选操作,生成一个新的列表。字典推导可以通过对一个字典进行迭代操作,生成一个新的字典。而集合推导则可以通过对一个集合进行迭代和筛选操作,生成一个新的集合。推导在数据处理场景中非常常见,并可以大大简化代码的编写和阅读。如果你想了解更多关于推导的语法和用法,请参考引用和引用中提供的链接。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python推导简单示例【列表推导、字典推导与集合推导】](https://download.csdn.net/download/weixin_38708361/12865890)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python推导](https://blog.csdn.net/iprobobo/article/details/123582135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值