Python 推导式 - 2

集合推导式

集合推导式的基本格式为:

{ expression for item in Sequence }
或
{ expression for item in Sequence if conditional }

 

计算数字 1,2,3,4,5 的立方数:

实例:

set_new = {i**3 for i in (1,2,3,4,5)}
set_new 

执行结果为:

{1, 8, 27, 64, 125}

 

判断不是abc的字母并输出:

实例:

warriors_curry = {x for x in 'abracadabrabcdcddbergtydscdfgsc' if x not in 'abc'}
print(warriors_curry)

type(warriors_curry)

执行结果为:

{'t', 'r', 's', 'f', 'e', 'd', 'y', 'g'}
set

 

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

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

元组推导式基本格式:

(expression for item in Sequence )
或
(expression for item in Sequence if conditional )

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

像下面的例子,我们可以使用这样的代码生成一个包含数字1~20的元组:

实例:

warriors_curry = (x for x in range(1,20))
print(warriors_curry)     # 返回的是生成器对象

tuple(warriors_curry)     # 使用 tuple() 函数,可以直接将生成器对象转换成元组

执行结果为:

<generator object <genexpr> at 0x000001E31FC53318>
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)

 

在下面的例子中,我们是用if-else这种语法格式,如果列表中的元素的首字母是 'c' ,将 'c' 转换为 'C' ,其他如果不是 'c' ,则将全部的字母都转换成大写的。

语法格式:

结果值1 if 判断条件 else 结果2  for 变量名 in 原列表

实例:

nba_warriors = ['curry','durant','creen','thompson','wiggins','wiseman']
new_warrior = [word.title() if word.startswith('c') else word.upper() for word in nba_warriors]
print(new_warrior)

执行结果为:

['Curry', 'DURANT', 'Creen', 'THOMPSON', 'WIGGINS', 'WISEMAN']

 

本次的分享到此结束,老铁们可以点赞收藏一下哈,方便以后及时复习,没有关注的老铁关注一下,以后会不断更新。学习Python与大数据的路上,小小白与你同行,我们一起加油,有什么问题或者是感受也可以在评论区打出来,我们一起交流一下,共同进步。

2023,新的一年,新的起点,扬帆起航,共创辉煌,加油吧老铁们!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小白学大数据

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值