2.3生成器

# 列表生成式
# lt = [i for i in range(10)]
# 生成器方式1:将列表生成式的[]改为()
lt = (i for i in range(3))   # 0  1   2

# 可以转换为列表
# print(list(lt))

# 可以进行遍历
# for i in lt:
#     print(i, end=' ')

# 可以一个一个提取,当遍历完毕后再使用next会报StopIteration错
print(next(lt))
print(next(lt))
print(next(lt))

'''
# 返回:[1, 2, 3, 4, ..., n]
# 当数据量特别大的时候,会突然占用很大的内容
def test(n):
    lt = []
    for i in range(1, n+1):
        lt.append(i)
    return lt


print(test(3))
'''


def test(n):
    for i in range(1, n+1):
        # 执行到此处,函数会返回yield后的值,然后停在这里
        yield i

t = test(3)       #  [1, 2, 3]
# print(t)

# 可以使用next一个一个提取
# print(next(t))
# print(next(t))
# print(next(t))
# print(next(t))

# 可以遍历
# for i in t:
#     print(i)

# 可以转换为列表
print(list(t))

d = {'name': 'xiaoming', 'age': 18, 'height': 180}
# 返回所有的键的对象(可迭代对象)
keys = d.keys()
# print(list(keys))
# for k in keys:
#     print(k, end=' ')
# 会报错
# print(next(keys))

print(list(d.values()))   #   ['xiaoming', 18, 180]

猜你喜欢

转载自blog.csdn.net/XC_LMH/article/details/81414602