python 3 基础之各种推导式(列表字典集合)

Posted 属于自己的世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 3 基础之各种推导式(列表字典集合)相关的知识,希望对你有一定的参考价值。

1、列表推导式

  1.1、普通列表推导式

  用于快速创建一个有规律的列表,如下代码:

my_list = [i * i for i in range(1, 10)]

print(my_list)

========================
运行结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81]

  相当于以下代码

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

  代码理解:先将执行for循环,然后将每个 i 代入表达式   i * i 中,将运算结果循环添加到空列表中,得到最终结果

  1.2、增加条件语句和多个循环

  增加条件语句

  推导式创建1~50之间偶数的列表

# 列表推导式创建一个1~50之间的偶数列表
my_list = [i for i in range(1,51) if i % 2 == 0]
print(my_list)

运行结果:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50]

==================================================

# 非推导式创建
my_list = []
# for循环
for i in range(1,51):
    if i % 2 == 0:
        my_list.append(i)
print(my_list)
# 跟上面代码运行结果一致

  循环循环嵌套

# 列表推导式创建for循环嵌套的列表
my_list = [a + b for a in 123 for b in abc]
print(my_list)

===================================================

# 非推导式创建列表
my_list1 = []
for a in 123:
    for b in abc:
        my_list1.append(a + b)
print(my_list1)

# 两者运行结果一样:[‘1a‘, ‘1b‘, ‘1c‘, ‘2a‘, ‘2b‘, ‘2c‘, ‘3a‘, ‘3b‘, ‘3c‘]

2、字典推导式

  相对于列表,看冒号两边,一边属于字典的key ,一边是字典的value

# 字典用推导式创建
dic = {x: x ** 2 for x in (2, 4, 6)}
print(dic)
# 非推导式创建
dict = {}
for x in (2,4,6):
    dict[x] = x ** 2
print(dict)

====================================
两段代码运行结果一致:{2: 4, 4: 16, 6: 36}

3、集合推导式

  创建一个空集合用 set(),因为  {}  是创建的空字典

# 推导式创建集合
a = {x for x in abracadabra if x not in abc}
print(a)
# 非推导式创建集合
b = set()
for x in abracadabra:
    if x not in abc:
        b.add(x)
print(b)

===========================================
运行结果两段代码一致:{r, d}

 

推导式没有元组,圆括号在Python中被用作生成器的语法

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

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

------------------------
结果:
(0, 1, 2, 3, 4, 5, 6, 7, 8)
<class tuple>

 

以上是关于python 3 基础之各种推导式(列表字典集合)的主要内容,如果未能解决你的问题,请参考以下文章

python的各种推导式(列表推导式字典推导式集合推导式)

python的各种推导式(列表推导式字典推导式集合推导式)

python的各种推导式(列表推导式字典推导式集合推导式)

Python学习之路:基础知识之推导式

python基础列表推导式&字典推导式&集合推导式

Python 推导式(列表推导式,字典推导式,集合推导式)