• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python简洁优雅的推导式示例详解

python 搞代码 4年前 (2022-01-07) 31次浏览 已收录 0个评论

这篇文章主要给大家介绍了关于Python简洁优雅的推导式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合,从而避免冗长的代码。推导式是典型的 Python 风格

Python语言有一种独特的推导式语法,相当于语法糖的存在,可以帮助你在某些场合写出较为精简酷炫的代码。但没有它,也不会有太多影响。Python语言有几种不同类型的推导式。

1. 列表推导式

列表推导式是一种快速生成列表的方式。其形式是用方括号括起来的一段语句,如下例子所示:

 lis = [x * x for x in range(1, 10)] print(lis)

输出

[1, 4, 9, 16, 25, 36, 49, 64, 81]

列表推导式要这么理解,首先执行for循环,对于每一个x,代入x*x中进行运算,将结果逐一添加到一个新列表内,循环结束,得到最终列表。它相当于下面的代码:

 lis = [] for i in range(1, 10):     lis.append(i*i)      print(lis)

输出

[1, 4, 9, 16, 25, 36, 49, 64, 81]

列表推导式为我们提供了一种在一行内实现较为复杂逻辑的生成列表的方法。其核心语法是用中括号[]将生成逻辑封装起来。

列表推导式有多重用法:

增加条件语句

 lis = [x * x for x in range(1, 11) if x % 2 == 0] 

输出

[4, 16, 36, 64, 100]

多重循环

 lis = [a + b for a in '123' for b in 'abc'] 

输出

[‘1a’, ‘1b’, ‘1c’, ‘2a’, ‘2b’, ‘2c’, ‘3a’, ‘3b’, ‘3c’]

更多用法

 dic = {"name": "mumu", "age": "18<a style="color:transparent">来源gao($daima.com搞@代@#码(网</a>"} a = [k+":"+v for k, v in dic.items()] print(a) # ['name:mumu', 'age:18'] 

2. 字典推导式

 dic = {x: x**2 for x in (2, 4, 6)} print(dic) print(type(dic)) 

注意:x: x**2的写法,中间的冒号,表示左边的key右边的value。

输出:

{2: 4, 4: 16, 6: 36}

3. 集合推导式

 a = {x for x in 'abracadabra' if x not in 'abc'} print(a) print(type(a)) 

输出:

{‘r’, ‘d’}

4. 元组推导式?

没有元组推导式。

 tup = (x for x in range(9)) print(tup) print(type(tup)) <generator object  at 0x0000013DB865AA40>  

要通过类似方法生成元组,需要显式调用元组的类型转换函数tuple(),如下所示:

 tup = tuple(x for x in range(9)) print(tup) print(type(tup)) 

输出:

(0, 1, 2, 3, 4, 5, 6, 7, 8)

总结

到此这篇关于Python简洁优雅的推导式的文章就介绍到这了,更多相关Python推导式内容请搜索gaodaima搞代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持gaodaima搞代码网

以上就是Python简洁优雅的推导式示例详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python简洁优雅的推导式示例详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址