推导式

本文详细介绍了Python中的三种推导式:列表推导式、字典推导式和集合推导式。通过丰富的实例展示了如何利用这些推导式简化代码,并提高程序效率。

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


推导式


推导式是Python中很强大的、很受欢迎的特性,具有语言简洁,速度快等优点。推导式包括:

1.列表推导式 
2.字典推导式 
3.集合推导式”’

一、列表推导式

使用[]生成list 

例子一

numbers = []
for x in range(100):
    if x % 3 == 0:

使用推导实现
numbers = [x for x in range(100) if x % 3 == 0]
例子二
def squared(x):
   return x*x
multiples = [squared(i) for i in range(30) if i % 3 is 0]
   print(multiples)

例子三
使用()生成generator将俩表推导式的[]改成()即可得到生成器。
multiples = (i for i in range(30) if i % 3 is 0)
    print(type(multiples))

二、字典推导式

字典推导和列表推导的使用方法是类似的,只不中括号该改成大括号。直接举例说明:

例子一:

快速更换key和value

mcase = {'a': 10, 'b': 34}
mcase_frequency = {v: k for k, v in mcase.items()}
print(mcase_frequency)

三、集合推导式

它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。

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

例子一:

用集合推导建字符串长度的集合

strings = ['a','is','with','if','file','exception']
{len(s) for s in strings} #有长度相同的会只留一个,这在实际上也非常有用
# Output: set([1, 2, 4, 9])

综合练习

1.将单词长度大于3的转为大写输出

names = ['bob','tom','alice','jerry','wendy','smith']
print([name.upper() for name in names if len(name)>3])

2.求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表

[(x,y) for x in range(5) if x%2==0 for y in range(5) if y %2==1]

3.求m中3,6,9组成的列表

m = [[1,2,3],[4,5,6],[7,8,9]]
[row[2] for row in m]
#或
[m[row][2] for row in (0,1,2)]

4: 求m中斜线1,5,9组成的列表

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[m[i][i] for i in range(len(m))]

5.求m,n中矩阵和元素的乘积

m = [[1,2,3],[4,5,6],[7,8,9]]
n = [[2,2,2],[3,3,3],[4,4,4]]
[m[row][col]*n[row][col] for row in range(3) for col in range(3)]
[[m[row][col]*n[row][col] for col in range(3)] for row in range(3)]
[[m[row][col]*n[row][col] for row in range(3)] for col in range(3)]
6.结合两个列表的元素,如果元素之间不相等的话
combs = []
for x in [1,2,3]:
    for y in [3,1,4]:
        if x != y:
   combs.append((x, y))
#推导
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值