我在下面有一个列表。我需要用它来创建一个只有COUNTRY名称的新列表。 请帮我转到循环X,以获得国家/地区名称
列表x= [["UK", "LONDON", "EUROPE"],["US", "WASHINGTON", "AMERICA"],["EG", "CAIRO", "AFRICA"],["JP","TOKYO","ASIA"]]
结果应该是
UK
US
EG
JP
答案 0 :(得分:4)
你有两种方式
使用for循环
countries = []
for e in x:
countries.append(e[0])
或列表推导
countries = [e[0] for e in x]
答案 1 :(得分:2)
最可读的方式可能是:
>>> data = [["UK", "LONDON", "EUROPE"],
["US", "WASHINGTON", "AMERICA"],
["EG", "CAIRO", "AFRICA"],
["JP","TOKYO","ASIA"]]
>>> countries = [country for country, city, continent in data]
>>> countries
['UK', 'US', 'EG', 'JP']
这个list comprehension清楚地表明data
中每个项目中的三个值是什么,哪个将在输出中,而索引0
并不能告诉读者很多。
答案 2 :(得分:1)
由于城市LONDON
,WASHINGTON
,CAIRO
,TOKYO
出现在列表项的第1个位置(从0开始)。因此,按列表压缩从列表项中获取所有第1项。
e.g。
>>> x= [["UK", "LONDON", "EUROPE"],["US", "WASHINGTON", "AMERICA"],["EG", "CAIRO", "AFRICA"],["JP","TOKYO","ASIA"]]
>>> [i[1] for i in x]
['LONDON', 'WASHINGTON', 'CAIRO', 'TOKYO']
>>>
国家/地区相同:
>>> [i[0] for i in x]
['UK', 'US', 'EG', 'JP']
答案 3 :(得分:0)
如果您发现自己假设数据x
始终包含[COUNTRY, CITYNAME, CONTINENT]
形式的列表,您可以检索x
中每个列表中的每个第一项,如下所示:
countries = []
for country, cityname, continent in x:
countries.append(country)
您可以使用列表理解来缩短上述内容。
>>> countries = [country for country, cityname, continent in x]
当然,您可以通过索引访问该值。
>>> countries = [lst[0] for lst in x]
答案 4 :(得分:0)
您还可以解压缩列表并将其追加到新列表:
x= [["UK", "LONDON", "EUROPE"],["US", "WASHINGTON", "AMERICA"],["EG", "CAIRO", "AFRICA"],["JP","TOKYO","ASIA"]]
countries = []
for a,b,c in x:
countries.append(a)