列表推导式、集合推导式、字典推导式、生成器

列表推导式

可以与三目运算符搭配使用

python 复制代码
dict1 = {'name': "by", "age": 20}
dict2 = {'name': "ss", "age": 25}
dict3 = {'name': "sa", "age": 24}
dict4 = {'name': "xs", "age": 27}
list1 = [dict1, dict2, dict3, dict4]
list2 = [{'name': elm['name'], 'age': elm['age'] + 20 if elm['age'] > 23 else elm['age'] + 2} for elm in list1]
print(list2)

集合推导式

字典推导式

生成器

通过列表推导式得出生成器

超出范围会报错

python 复制代码
# 列表推导式
list1 = [x * 3 for x in range(10)]
print(type(list1), list1)
# 列表生成式
list2 = (x * 3 for x in range(10))
print(type(list2), list2)
print(list2.__next__())
print(list2.__next__())
print(list2.__next__())
print(next(list2))
print(next(list2))
print(next(list2))

通过函数得出生成器

生成器方法

yield:返回该值、暂停该线程,通过next()唤醒,下一步可以y = yield x

send:发送一个值给刚才暂停的yield线程,赋值给y

python 复制代码
def gen():
    i = 0
    while i < 5:
        temp = yield i
        print('temp', temp)
        i += 1
    return '没有更多的数据'


g = gen()
print(g)
print(g.send('a'))
print(g.__next__())
print(g.__next__())
print(g.__next__())

迭代器

相关推荐
小猪弟11 分钟前
【app逆向】某壳逆向的wll-kgsa参数,signature参数
python·逆向·wll-kgsa·signature·
春日见14 分钟前
端到端大模型自动驾驶
java·开发语言·驱动开发·docker·自动驾驶·计算机外设
A.A呐25 分钟前
【QT第三章】常用控件2
开发语言·qt
对方正在长头发22531 分钟前
写了个 Windows 端口映射管理工具,再也不用敲命令了
python
白云如幻32 分钟前
【JDBC】集合、反射和泛型复习-3
java·开发语言·jdbc
笨笨马甲35 分钟前
Qt 实现三维坐标系的方法
开发语言·qt
tang7778940 分钟前
哪些行业用动态代理ip?哪些行业用静态代理IP?怎样区分动态ip和静态ip?(互联网人必码·实用长文)
大数据·网络·爬虫·python·网络协议·tcp/ip·智能路由器
bugcome_com1 小时前
C# 高级集合使用示例
开发语言·c#
sycmancia1 小时前
C++——动态内存分配、关于虚函数、关于继承中的强制类型转换
开发语言·c++