张国伟 发表于 2022-11-2 15:59:23

Python推导式创建数列的方法

一、列表推导式

列表推导式生成列表对象,语法如下:
'''
[表达式 for item in 可迭代对象]
或者
[表达式 for item in 可迭代对象 if 条件判断]
'''例子
l1 =
print(l1)       #

l2 =
print(l2)       #

l3 =
print(l3)       #

l4 =
print(l4)       # ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

l5 = [(row,col) for row in range(3) for col in range(1,4)]
print(l5)# [(0, 1), (0, 2), (0, 3), (1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3)]
for l6 in l5:
    print(l6)二、字典推导式

字典推导式生成字典对象,语法如下:
'''
{key:value for 表达式 in 可迭代对象}
字典推导式也可以加if和多个for循环
'''例子
# 统计字符串中各个字符出现的次数
#Python学习交流群:711312441
text = "i love liangxiaoxin,i can fall in love liangxiaoxin all the time."
count_dict = {d : text.count(d) for d in text}
print(count_dict)   # {'i': 10, ' ': 10, 'l': 8, 'o': 4, 'v': 2, 'e': 4, 'a': 7, 'n': 6, 'g': 2, 'x': 4, ',': 1, 'c': 1, 'f': 1, 't': 2, 'h': 1, 'm': 1, '.': 1}三、集合推导式

集合推导式生成集合,和列表推导式的语法格式类似,语法如下:
'''
{表达式 for item in 可迭代对象}
或者
{表达式 for item in 可迭代对象 if 条件判断}
'''例子
s = {x for x in range(100) if x % 7 == 0}
print(s)    # {0, 98, 35, 70, 7, 42, 77, 14, 49, 84, 21, 56, 91, 28, 63}四、生成器推导式

元组是没有推导式的,元组推导式生成的是一个生成器对象
一个迭代器只能运行一次,第一次迭代可以得到数据,第二次迭代不会显示数据
例子
t1 = (x*2 for x in range(1,100) if x % 9 == 0)
print(t1)   # <generator object <genexpr> at 0x00000257B30D69E8>
print(list(t1))    #
print(tuple(t1))   # ()

t2 = (x*2 for x in range(1,100) if x % 9 == 0)
for t in t2:
    print(t,end="\t")    # 18    36    54    72    90    108    126    144    162    180    198
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Python推导式创建数列的方法