对于列表里面嵌套for语句,始终有些迷糊。下面简单举几个例子来说明一下。例如:
a_list = [1,2,3,4,5,6]
new_list = [x for x in a_list]
print(new_list)
>>>[1,2,3,4,5,6] #但是a_list和new_list指向的不是同一个列表,也就是说,new_list创建了一个新的列表
new_list_list = [x for x in a_list if x%2 == 0]
print(new_list_list)
>>>[2,4,6]
其实这一行代码相当于下面这多行代码的功能,由此可说明列表里面嵌套for语句和if语句比较简洁:
new_list_list=[]
for x in a_list:
if x%2 == 0:
new_list_list.append(x)
print(new_list_list)
>>>[1,2,3]
当然这种方式也可以应用于同时从多个列表里面取出元素放在同一个列表里面:
num = [3,4,6]
c_str = ['a','b','c']
com_list = [(x,y) for x in num for y in c_str]
print(com_list)
>>>[(3, 'a'), (3, 'b'), (3, 'c'), (4, 'a'), (4, 'b'), (4, 'c'), (6, 'a'), (6, 'b'), (6, 'c')]
list_com = [(x,y) for x in num for y in c_str if x%2 == 0]
print(list_com)
>>>[(4, 'a'), (4, 'b'), (4, 'c'), (6, 'a'), (6, 'b'), (6, 'c')]
第一次写博客,如有错误,敬请指正,感谢大家~