对于新手来说,生成一个新的列表,他可能会使用for 循环,但是for循环一般来说是要少用的(因为比较慢),那么如何不使用for循环生成一个新的列表呢?那就需要用到列表表达式了,例子如下:
#生成一个从0到9的列表
a=[x for x in range(10)]
print(a)
>>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
如果生成的列表每一个元素是二元的呢?
a=[(x,y) for x in range(3) for y in range(3)]
print(a)
>>>>[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
这样会生成3*3=9个元素
如果是需要从list1中选择部分数据生成list2呢?只需要在列表表达式里面加一个if条件
list1=[x for x in range(10)]
list2=[x for x in list1 if x<5]
print(list2)
>>>>[0, 1, 2, 3, 4]
当然,元素是二元时也可以筛选
list1=[(x,y) for x in range(3) for y in range(3)]
list2=[(x,y) for x in range(3) for y in range(3) if x<1 and y<2]
print(list2)
>>>>[(0, 0), (0, 1)]