python list comprehension:从列表列表中的每个列表中列出多个项目

时间:2019-02-07 04:55:08

标签: python list list-comprehension

我有一个列表列表,每个列表有四个项目。对于其中的每个列表,我想采用索引0和2,将它们放在一个列表中,然后将所有这些列表放在一个列表中。因此,使用for循环,通过执行以下操作,我得到了想要的东西:

finallist = []
for i in range(len(weather_data)):
    templist = []
    templist.append(weather_data[i][0])
    templist.append(weather_data[i][2])
    finallist.append(templist)

所以我得到了一个列表,例如[['2018-02-01',-18.6],['2018-02-02',-19.6],['2018-02-03',-22.3]] 。但是对于这项任务,我应该使用一个列表理解来完成。我能得到的最好的是:

 weekendtemps = [x[0] for x in weather_data if (x[1] == "Saturday" or x[1] == "Sunday")]

但这只会给我[['2018-02-01'],['2018-02-2'],['2018-02-03']]。如何使用列表理解来获取weather_data [0]和weather_data [2]?

1 个答案:

答案 0 :(得分:1)

为什么不呢?

weekendtemps = [[x[0],x[2]] for x in weather_data if (x[1] == "Saturday" or x[1] == "Sunday")]

或更有效:

weekendtemps = [[x[0],x[2]] for x in weather_data if x[1] in ['Saturday', 'Sunday']]