python

当前位置:首页 > python基础教程 > 当前文章

python基础教程

列表推导式、集合推导式、字典推导式

2020-07-31 76赞 python中国网
每篇文章努力于解决一个问题!python高级、python面试全套、操作系统经典课等可移步文章底部。

  python语法简洁,推导式就是一个很好的体现。

  推导式(又称解析式)是 Python 独有的一种特性。使用推导式可以从一个数据序列构建一个新的数据序列。推导式从外形上来看像是for循环的一种变形写法。本节我们看一下列表推导式、集合推导式、字典推导式,你可能好奇是否有元组推导式,当你试图写一个元组推导式的时候其实结果是一个生成器,生成器可以参考python实现生成器

  1、列表推导式

  [表达式 for 迭代对象的元素 in 可迭代对象 if 条件表达式 ]  # if 条件表达式可以省略

# -*- coding: utf-8 -*-

new_date = [x**2 for x in [1,2,3,4] if x > 2]
new_date2 = [x**2 for x in [1,2,3,4]]
print(new_date)
print(new_date2)

[9, 16]
[1, 4, 9, 16]

  2、集合推导式

  { 表达式 for 迭代对象的元素 in 可迭代对象 if 条件表达式 } # if 条件表达式可以省略

# -*- coding: utf-8 -*-

# -*- coding: utf-8 -*-

new_date = {x**2 for x in [1,2,3,4] if x > 2}
new_date2 = {x**2 for x in [1,2,3,4]}
print(new_date)
print(new_date2)

{16, 9}
{16, 1, 4, 9}

  3、字典推导式

  字典推导式的长相和集合推导式完全相同,这个并不奇怪,因为python中输出字典或者输出集合都是用{ }包围起来的。

  {表达式 for 迭代对象的元素 in 可迭代对象 if 条件表达式}  # if 条件表达式可以省略

# -*- coding: utf-8 -*-

dic = {'age':18,'name':'老王'}
new_date = {v:k for k,v in dic.items() if v == 18}
new_date2 = {v:k for k,v in dic.items()}

print(new_date)
print(new_date2)

{18: 'age'}
{18: 'age', '老王': 'name'}

文章评论

列表推导式、集合推导式、字典推导式文章写得不错,值得赞赏