python笔记-列表生成式

 

前言

 

python里面[]表示一个列表,快速生成一个列表可以用range()函数来生成。
对列表里面的数据进行运算和操作,生成新的列表最高效快速的办法,那就是列表生成式了。

 

range()

 

1.一个连续的数字类型列表,比如[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],可以用range生成

2.python3直接打印b会显示range(1, 11)对象,并不是直接显示应该列表,如果想显示列表,可以用list()转下

 

列表生成式

 

1.如果想对列表里面的数据进行运算后重新生成一个新的列表,如[11, 22, 33 ... 1010],按平常思维就是先定义一个列表c,然后for循环挨个运算,算完了再append添加到c,最后c就是新的列表了

# 对列表数平方

b = range(1, 11)
c = []
for i in b:
    c.append(i*i)
print(c)

# # 结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 

2.接下来看看用列表生成式如何去实现

 

3.列表生成式语法是固定的,[]里面for 前面是对列表里面数据的运算操作,后面跟平常for循序一样遍历去读取。运行后会自动生成新的列表

 

带if判断

 

1.如果想对一个列表里面的数据筛选,比如:[1, 3, -3, 4, -2, 8, -7, 6],找出大于0的数,按正常思维可以for循环挨个判断,符合条件的放到新的列表

c = [1, 3, -3, 4, -2, 8, -7, 6]
d = []
for i in c:
    if i > 0:
        d.append(i)  # 添加到列表d
print(d)

# 结果:[1, 3, 4, 8, 6]

 

2.接下来可以看看列表生成式,写出更加简洁优雅的代码,快速高效!

# 提取大于0的数
c = [1, 3, -3, 4, -2, 8, -7, 6]
d = [x for x in c if x > 0]
print(d)

# 运行结果[1, 3, 4, 8, 6]

 

 

多个参数

 

1.前面列表生成式都只传一个参数x,如果有两个列表如何去运算呢?
a = [1, 2, 3, 4, 5]
b = ["a", "b", "c", "d", "e"]
如何得出c = ["a1", "b2", "c3", "d4", "e5"]

# coding:utf-8

a = [1, 2, 3, 4, 5]
b = ["a", "b", "c", "d", "e"]

# 多个参数列表生成式
c = [str(x)+str(y) for x, y in zip(b, a)]
print(c)

# 结果:['a1', 'b2', 'c3', 'd4', 'e5']

 

2.列表生成式的语法是非常优雅的,学会了可以少写很多代码。理解起来也并不难,多联系几次就能熟练掌握了。

posted @ 2019-11-09 15:31  feiyueNotes  阅读(192)  评论(0)    收藏  举报