首页 > 编程语言 > 详细

Python学习之列表生成式

时间:2021-06-25 13:24:20      阅读:15      评论:0      收藏:0      [点我收藏+]

定义

列表生成式即List Comprehensions,是Python内置的可以用来创建list的生成式。

range()函数

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

如果直接打印range对象,并不是直接显示列表,如果想显示列表,可以用list()转换。

实例:

range_num = range(1, 21)
print(range_num)
print(type(range_num))
print(list(range_num))

结果:

技术分享图片

列表生成式

如果要对列表里的数据进行一定的运算后,生成一个新的列表,列表生成式可以简化代码。

如:要求生成一个[1*1,2*2,3*3,...]的列表

使用for循环

temp = []
range_num = range(1, 11)
for x in range_num:
    temp.append(x*x)
print(普通for循环:%s % temp)

使用列表生成式

temp = []
range_num = range(1, 11)
temp_demo = [x*x for x in range_num]
print(列表生成式:%s % temp_demo)

带if判断

对运算生成的列表的内容有筛选,可以在列表生成式中使用判断语句if...else。

但是要注意的是:if在for后面,不能带else;if在for前面,必须要带else。for前面的if ... else是表达式,而for后面的if是过滤条件。

实例:

1、生成仅偶数的平方的列表[4,16,36,.....]

temp_demo1 = [x*x for x in range(1, 21) if x % 2 == 0]
print(temp_demo1)

技术分享图片

2、生成偶数的平方,奇数的平方的负数的列表[-1,4,-9,16.....]

temp_demo2 = [x*x if x % 2 == 0 else -x*x for x in range(1, 21)]
print(temp_demo2)

技术分享图片

双重循环

# 双重循环
temp_demo3 = [m + n for m in ABC for n in XYZ]
print(temp_demo3)

技术分享图片

多个参数

实例:有两个列表a = [1,2,3,4,5],b = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘],然后生成列表c = [‘a1‘,‘b2‘,‘c3‘,‘d4‘,‘e5‘]

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)

技术分享图片

Python学习之列表生成式

原文:https://www.cnblogs.com/rissa/p/14930102.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!