Python2.7列表推导式、字典推导式、生成器示例
2017-05-05 16:46
851 查看
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]]
二维数组的类型: <type'list'>
以友好的二维数组形式打印:
[10, 11, 12]
[10, 11, 12]
[10, 11, 12]
[10, 11, 12]
[10, 11, 12]
+++++++字典推导式++++++++
{0: 'T', 1: 'o', 2: 'n', 3: 'y'}
+++++++(生成器)++++++++
gen1类型: <type 'generator'>
从生成器返回的迭代器取值:
h e l l o
g的类型是: <type 'generator'>
1.0
多次调用
1
1
1
1
1
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]]
二维数组的类型: <type'list'>
以友好的二维数组形式打印:
[10, 11, 12]
[10, 11, 12]
[10, 11, 12]
[10, 11, 12]
[10, 11, 12]
+++++++字典推导式++++++++
{0: 'T', 1: 'o', 2: 'n', 3: 'y'}
+++++++(生成器)++++++++
gen1类型: <type 'generator'>
从生成器返回的迭代器取值:
h e l l o
g的类型是: <type 'generator'>
1.0
多次调用
1
1
1
1
1
相关文章推荐
- Python列表推导式与生成器表达式用法示例
- Python的列表推导式、迭代器、生成器
- python数据处理之列表、集合、字典推导式
- python的各种推导式(列表推导式、字典推导式、集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体
- 25_列表推导式、生成器表达式、字典推导式、集合推导式
- python3中生成器和列表推导式的优点和缺点
- Python的高级特性2:列表推导式,生成器与迭代器
- python的各种推导式(列表推导式、字典推导式、集合推导式)
- python的各种推导式(列表推导式、字典推导式、集合推导式)
- python3基础: 元组tuple、 列表list、 字典dict、集合set。 迭代器、生成器
- Python列表推导式、字典推导式与集合推导式用法实例分析
- 学习日志---python(列表解析、生成器、字典和集合)
- Python基础8:列表推导式(list)字典推导式(dict) 集合推导式(set)
- python的各种推导式(列表推导式、字典推导式、集合推导式)
- python实现随机密码字典生成器示例
- 学习日志---python(列表解析、生成器、字典和集合)
- python列表推导式详解 列表推导式详解 字典推导式 详解 集合推导式详解 嵌套列表推导式详解
- python 生成器、列表/字典/集合解析式区别
- python-基础知识之三元表达式、列表推导式、生成器表达式
- python学习——Python中的列表推导式、字典推导式、集合推导式