Python之第十五天的努力--生成器,列表推导式,生成器表达式,内置函数1(了解)
2021-05-12 23:30
标签:外衣 使用 app rabl 输入 字符 偶数 调用 社区 唯一的区别:生成器是我们自己用Python代码构建的数据结构。迭代器都是提供的,或者转化得来的。 用一行代码构建一个比较复杂有规律的列表。 列表推导式 循环模式:[标量(加工后的变量) for 变量 in iterable] 筛选模式:[标量(加工后的变量) for 变量 in iterable if 条件] 循环模式: 筛选模式 Python之第十五天的努力--生成器,列表推导式,生成器表达式,内置函数1(了解) 标签:外衣 使用 app rabl 输入 字符 偶数 调用 社区 原文地址:https://www.cnblogs.com/szheng/p/13137532.html01 生成器
Python社区,生成器与迭代器看成是一种。生成器的本质就是迭代器。
生成器函数获取生成器:
# 生成器函数
def func():
print(111)
print(222)
yield 3
print(333)
print(444)
yield 4
ret = func()
print(ret) #
# def func():
# l1 = []
# for i in range(1,5001):
# l1.append(f‘{i}号包子‘)
# return l1
# ret = func()
# print(ret)
def gen_func():
for i in range(1,5001):
yield f‘{i}号包子‘
ret = gen_func()
for i in range(200):
print(next(ret)) # 1~200
for i in range(200):
print(next(ret)) # 201~400
yield from
# yield from
# def func():
# l1 = [1,2,3,4,5]
# yield l1
# # 将l1 这个列表变成了迭代器返回
# ret = func()
# print(next(ret)) # [1, 2, 3, 4, 5]
#
def func():
l1 = [1,2,3,4,5]
yield from l1
# 将l1 这个列表变成了迭代器返回
ret = func()
print(next(ret)) # 1
print(next(ret)) # 2
print(next(ret)) # 3
print(next(ret)) # 4
print(next(ret)) # 5
def func():
lst1 = [‘卫龙‘, ‘老冰棍‘, ‘北冰洋‘, ‘牛羊配‘]
lst2 = [‘馒头‘, ‘花卷‘, ‘豆包‘, ‘大饼‘]
yield from lst1
yield from lst2
g = func()
for i in g:
print(i)
# 卫龙
# 老冰棍
# 北冰洋
# 牛羊配
# 馒头
# 花卷
# 豆包
# 大饼
02 列表推导式
# 循环模式
# 将10以内所有整数的平方写入列表。
l1 = [i*i for i in range(1,11)]
print(l1)
# 100以内所有的偶数写入列表.
l2 = [i for i in range(2,101,2)]
print(l2)
# 从python1期到python100期写入列表lst
l3 = [‘python‘+str(i)+‘期‘ for i in range(1,101)]
l3 = [f‘python{i}期‘for i in range(1,101)]
print(l3)
# 30以内能被三整除的数
l1 = [i for i in range(1,31) if i%3 == 0]
print(l1)
# 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
l2 = [‘aaaaa‘,‘bb‘,‘cccc‘,‘ddddd‘,‘kk‘]
print([i.upper() for i in l2 if len(i) >= 3])
# 找到嵌套列表中名字含有两个‘e’的所有名字(有难度)
names = [[‘Tom‘, ‘Billy‘, ‘Jefferson‘, ‘Andrew‘, ‘Wesley‘, ‘Steven‘, ‘Joe‘],
[‘Alice‘, ‘Jill‘, ‘Ana‘, ‘Wendy‘, ‘Jennifer‘, ‘Sherry‘, ‘Eva‘]]
print([name for lis in names for name in lis if name.count(‘e‘) == 2])
03 生成器表达式
# 生成器表达式:
# 与列表推导式的写法几乎一模一样。把[]换成() 也有筛选模式,循环模式,多层循环构建
print([i for i in range(1,11)]) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print((i for i in range(1,11))) #
04 内置函数1(了解)
# 了解
# eval 剥去字符串的外衣运算里边的代码。有返回值
# s1 = ‘1 + 3‘
# print(s1)
# print(eval(s1)) # 4
# s = ‘{"name":"kkk"}‘
# print(eval(s),type(eval(s))) # {‘name‘: ‘kkk‘}
上一篇:Go语言系列之性能调优
下一篇:C++ 定位new创建对象
文章标题:Python之第十五天的努力--生成器,列表推导式,生成器表达式,内置函数1(了解)
文章链接:http://soscw.com/index.php/essay/84905.html