当前位置:   article > 正文

python之推导式_python推导式

python推导式

1、推导式

推导式:comprehensions(又称解析式),是Python的一种独有特性,相当于语法糖的存在,在某些时候可以简化代码。

2、列表推导式

PYTHON提供的一种可以快速生成列表的方式,列表推导式
语法:变量 = [推导表达式]
(1)最基本的列表推导式

my_list1 = [x for x in range(0,10)]
print(my_list1)
# 结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 1
  • 2
  • 3

想当于:

my_list1 = list()
for i in rang(0,10):
    my_list1.append(i)
print(my_list1)
  • 1
  • 2
  • 3
  • 4

(2)附带运算的列表推导式

my_list2 = [x**2 for x in range(0,10)]
print(my_list2)
# 结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
  • 1
  • 2
  • 3

相当于x每取一个数值,都要进行平方运算,然后在存到列表中。
(3)附带条件的列表推导式

my_list3 = [x for x in range(0,20) if x % 2 == 0]
print(my_list3)
# 结果:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
  • 1
  • 2
  • 3

(4)多重循环的列表推导式

my_list4 = [x + y for x in range(0,5) for y in range(0,2)]
print(my_list4)
# x :0 1 2 3 4
# y :0 1
# 结果:[0, 1, 1, 2, 2, 3, 3, 4, 4, 5]
  • 1
  • 2
  • 3
  • 4
  • 5

(5)更多用法:

my_dict = {"tom":"18","jerry":"19","ruiwen":"18"}
my_list5 = [k+":"+v for k,v in my_dict.items()]
print(my_list5)
# 结果:['tom:18', 'jerry:19', 'ruiwen:18']
  • 1
  • 2
  • 3
  • 4

3、集合推导式

与列表推导式差不多一样,只不过是将[ ]换为{ }

my_dict = {"tom":"18","jerry":"19","ruiwen":"18"}
my_set = {k+":"+v for k,v in my_dict.items()}
print(my_set)
# 结果:{'ruiwen:18', 'tom:18', 'jerry:19'}
  • 1
  • 2
  • 3
  • 4

4、字典推导式

my_dict = {x:x for x in range(5)}
print(my_dict)
# 结果:{0: 0, 1: 1, 2: 2, 3: 3, 4: 4}
  • 1
  • 2
  • 3

5、四种基本组合数据类型,列表、集合和字典都可以用推导式那么元组能不能呢?

答案:不能,pthon中,将( )用于了生成器

my_tuple = (x for x in range(10))
print(type(my_tuple))
# 结果:<generator object <genexpr> at 0x00000191B4F22CA8>
    <class 'generator'>
  • 1
  • 2
  • 3
  • 4

不过可以通过类型强制性转换,将生成器转换为对应的类型数据

print(tuple(my_tuple))
# 结果:(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/207921
推荐阅读
相关标签
  

闽ICP备14008679号