Python学习之---列表解析+字典解析+集合解析+生成器表达式

本文介绍了Python中的列表解析、字典解析、集合解析和生成器表达式,包括它们的语法、优点和应用场景。列表解析提供了一种简洁的创建列表的方式,而生成器表达式则在节省内存方面更具优势。此外,文章还讨论了集合解析和字典解析的使用,总结了Python中解析式的引入和发展。
摘要由CSDN通过智能技术生成

列表解析List Comprehension

语法:
◆ [返回值 for 元素 in 可迭代对象 if 条件]
◆ 使用中括号[],内部是for循环,if条件语句可选
◆ 立即返回一个新的列表
优点
列表解析式是一种语法糖,引入一个新的概念:语法糖
语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法。语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读。
在python语言中语法糖有三元表达式、列表生成式、列表生成器、迭代器等等,具体可参考如下博客:
https://segmentfault.com/a/1190000006261012

◆ 编译器会优化,不会因为简写而影响效率,反而因优化提高了效率
◆ 减少程序员工作量,减少出错
◆ 简化了代码,但可读性增强
基础语法格式
举例:

list1=[]
for i in range(10):
    list1.append(i)
print(list1)
>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#变形后: 
print([i for i in range(10)])  

二者得到的答案是一致的,但是后者的代码量个简洁度明显低于前者.
条件语法格式
列表解析式还可以引进 if判断语句:
举例:
打印20以内既能被2整除又能被3整除的数:

print([i for i in range (1,20) if i%==0 if i %3 ==0])

只需要一行代码即可达到要求,而且还是嵌套的2层if.
嵌套循环语法
列表解析还可以嵌套两个for 循环

[(x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值