import random# 列表推导# [表达式 若干for/if子句] 每一个子句都是前一个子句的下一级a = [x for x in range(10)]print(a) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]a = [x for x in range(10) if x % 2 == 0]print(a) # [0, 2, 4, 6, 8]li = ["a", "b", "c", "d"]a = [(x, li[x]) for i in range(3) for x in range(len(li))]print(a)# [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]a = ["fe", "ewf", "weff", "s"]b = ["op", "uyt", "k", "hkuu"]c = [x + y for x in a for y in b if len(x) + len(y) <= 5]# ['feop', 'feuyt', 'fek', 'ewfop', 'ewfk', 'weffk', 'sop', 'suyt', 'sk', 'shkuu']print(c)a = ["fe", "ewf", "weff", "s"]b = ["op", "uyt", "k", "hkuu"]c = [x + y for x in a if len(x) <= 3 for y in b if len(y) <= 3]# ['feop', 'feuyt', 'fek', 'ewfop', 'ewfuyt', 'ewfk', 'sop', 'suyt', 'sk']print(c)# 请注意,这里的 for 语句末尾没有冒号。squares = [value**2 for value in range(1, 11)]print(squares)# 元组推导# 实际上没有真正的元组推导,这是用 tuple() 将生成器推导转换为元组# 用小括号定义的推导式是生成器推导式a = tuple(random.randint(1, 100) for i in range(10))print(a)# 集合推导式a = {divisor**2 for divisor in range(1, 11)}print(a) # 注意,打印是无序的,因为集合是无序的# 字典推导# {键表达式:值表达式 若干for/if子句} 每一个子句都是前一个子句的下一级a = {x: x**2 for x in range(10)}print(a) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}# 注意,并不能使用小括号来生成"元组推导",那样创建的是生成器
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。