python推导式多行书写_Python推导式pythonic必备

本文介绍了Python中的三种推导式:列表、字典及集合推导式,并通过实例展示了如何利用这些特性简化代码,提高编程效率。文章还特别强调了字典推导式在键值对互换方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

推导式(又称解析式) 是Python的⼀种独有特性。

推导式是可以从⼀个数据序列构建另⼀个新的数据序列的结构体。 共有三种推导:

- 列表(list)推导式

- 字典(dict)推导式

- 集合(set)推导式

列表推导式 (list comprehensions)

列表推导式(又称列表解析式) 提供了⼀种简明扼要的方法来创建列表。

它的结构是在一个中括号里包含一个表达式, 然后是一个for语句, 然后是0个或多个for或者if语句。 那个表达式可以是任意的, 意思是你可以在列表中放入任意类型的对象。 返回结果将是⼀个新的列表, 在这个以if和for语句为上下⽂的表达式运⾏完成之后产生

规范

variable = [x for x in list if something == 2]

这⾥是另外⼀个简明例子:

multiples = [i for i in range(30) if i % 3 is 0]

print(multiples)# Output: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]123

列表推导式在有些情况下超赞, 特别是当你需要使⽤for循环来生成一个新列表。 举个例子, 通常一般人会这样做:

squared = []for x in range(10):

squared.append(x**2)123

你可以使⽤列表推导式来简化它:

squared = [x**2 for x in range(10)]

字典推导式(dict comprehensions)

字典推导式,使用的场景比较少,但是有一点是超级赞的!

问题:遇到字典的键值对互换,你会怎么操作?

使用for循环?mydict={"a":1,"b":2,"c":3}

mydict_new={}for key,val in mydict.items():

mydict_new[val]=key1234

2. 使用zip?

mydict={"a":1,"b":2,"c":3}

newdict=dict(zip(mydict.values(),mydict.keys()))12

3. say no,你应该使用字典推导式!

mydict={"a":1,"b":2,"c":3}

newdict={v: k for k, v in some_dict.items()}ornewdict=dict([val,key] for key,val in mydict.items())1234

集合推导式(set comprehensions)

至于集合推导式,跟列表推导式大同小异,不过在去重方面是set的强项

举个栗子:

squared = {x**2 for x in [1, 1, 2]}

print(squared)# Output: {1, 4}

来源:华为云社区  作者:一梦七年诗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值