【python基础】列表推导式

所谓的列表推导式,就是指的轻量级循环创建列表

1. 基本的方式

In [9]: a = [x for x in range(4)]

In [10]: a
Out[10]: [0, 1, 2, 3]

In [11]: a = [x for x in range(1,15,2)]

In [12]: a
Out[12]: [1, 3, 5, 7, 9, 11, 13]
In [18]: a
Out[18]: [123, 123, 123, 123]

In [19]: a = ["hi" for x in range(4)]

In [20]: a
Out[20]: ['hi', 'hi', 'hi', 'hi']

2. 在循环的过程中使用if

In [13]: a = [x for x in range(1,20) if x%2==0]

In [14]: a
Out[14]: [2, 4, 6, 8, 10, 12, 14, 16, 18]

3. 2个for循环

In [21]:  a = [x for x in range(0,3) for y in range(3) ]

In [22]: a
Out[22]: [0, 0, 0, 1, 1, 1, 2, 2, 2]



In [15]: a = [(x,y) for x in range(0,3) for y in range(3) ]

In [16]: a
Out[16]: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

4. 3个for循环

练习

  1. 生成一个[[1,2,3],[4,5,6]....]的列表最大值在100以内

  2. 请写出一段 Python 代码实现分组一个 list 里面的元素,比如 [1,2,3,...100]变成 [[1,2,3],[4,5,6]....]

答案

In [9]:  a = [(x,y,z) for x in range(1,10,3) for y in range (x+1,x+2) for z in range(x+2,x+3)]

In [10]: a
Out[10]: [(1, 2, 3), (4, 5, 6), (7, 8, 9)]

In [11]:  a = [[x,y,z] for x in range(1,10,3) for y in range (x+1,x+2) for z in range(x+2,x+3)]

In [12]: a
Out[12]: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
In [22]: b= [a[x:x+3] for x in range(0,10,3)]

In [23]: b
Out[23]: [[1, 2, 3], [4, 5, 6], [7, 8, 9], []]

猜你喜欢

转载自blog.csdn.net/weixin_40283570/article/details/82703778