Python列表推导式、字典推导式、生成器示例

小鱼儿 2022-06-16 04:44 300阅读 0赞

print “**\n+++++++列表推导式**++++++++”

auto_list = [x for x in “Good evening!”] #列表推导式1
print “列表推导式1:\t”,auto_list

rows = xrange(1, 6)
cols = xrange(10,13)

# 生成一个二维数组:在列表中嵌套列表
# 总共有len(rows)行,每行中的列元素是[col for col in cols]

two_dims_list = [[col for col in cols] for row in rows] #列表推导式2
print “列表推导式2:\t”,two_dims_list
print “二维数组的类型:\t”,type(two_dims_list)

print “以友好的二维数组形式打印:”
for
x intwo_dims_list: #二维数组中的每个元素都是列表
print x

print “\n+++++++字典推导式++++++++”
str_ = “Tony”
print
{index:value for index,value in enumerate(str_)}

print “\n+++++++(生成器)++++++++”
# 生成器的语法是(statement) ,她会返回一个迭代器供我们迭代取值

“””

语法1:(statement)

语法2:在函数中使用yield关键字

“””

gen1 = (g for g in “hello”)
print “gen1类型:\t”, type(gen1)

print “从生成器返回的迭代器取值:”
for
x in gen1:
print x,

“””
在函数中使用yield关键字,不会像return那样返回给调用者然后退出,
而是保留函数当前执行的结果提供给调用者,
等到下次调用时再执行一次并保留当次执行结果
“””
def
gen2(arg):
i = 2
yield i*arg

g = gen2(0.5)
print “\n g的类型是: “, type(g)
for x in g:
print x

def gen3():
j = 0
yield j+1

print “\n多次调用”
for
x in range(5):
print gen3().next() #通过next()方法执行函数

程序运行结果:

+++++++列表推导式++++++++

列表推导式1: [‘G’,’o’, ‘o’, ‘d’, ‘ ‘, ‘e’, ‘v’, ‘e’, ‘n’, ‘i’, ‘n’, ‘g’, ‘!’]

列表推导式2: [[10,11, 12], [10, 11, 12], [10, 11, 12], [10, 11, 12], [10, 11, 12]]

二维数组的类型:

以友好的二维数组形式打印:

[10, 11, 12]

[10, 11, 12]

[10, 11, 12]

[10, 11, 12]

[10, 11, 12]

+++++++字典推导式++++++++

{0: ‘T’, 1: ‘o’, 2: ‘n’, 3: ‘y’}

+++++++(生成器)++++++++

gen1类型:

从生成器返回的迭代器取值:

h e l l o

g的类型是:

1.0

多次调用

1

1

1

1

1

发表评论

表情:
评论列表 (有 0 条评论,300人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python列表推导

    python列表推导式创建列表的方式更简洁。常见的用法为,对序列或可迭代对象中的每个元素应用某种操作,用生成的结果创建新的列表;或用满足特定条件的元素创建子序列 pl

    相关 Python列表推导

    列表推导式概念: 列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。 列表推导式书写形式: 1、list = \[Express for