我有一个列表列表,每个列表有四个项目。对于其中的每个列表,我想采用索引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]?
答案 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']]