如何从python中的现有列表中制作新的元素列表?

Ser*_*tas 1 python loops list

我在下面有一个清单。我需要使用它来创建仅具有COUNTRY名称的新列表。请帮我圈圈X以获得国家名称列表

x= [["UK", "LONDON", "EUROPE"],["US", "WASHINGTON", "AMERICA"],["EG", "CAIRO", "AFRICA"],["JP","TOKYO","ASIA"]]
Run Code Online (Sandbox Code Playgroud)

结果应该看起来像

UK
US
EG
JP
Run Code Online (Sandbox Code Playgroud)

Ign*_*sel 5

你有两种方法

使用for循环

countries = []

for e in x:
 countries.append(e[0])
Run Code Online (Sandbox Code Playgroud)

或具有列表理解功能,这在大多数情况下是更好的选择

countries = [e[0] for e in x]
Run Code Online (Sandbox Code Playgroud)

此外,如果您的数据源是一个生成器(在这种情况下不是),或者您正在对每个元素进行一些昂贵的处理(在这种情况下也不是),则可以generator expression通过更改方括号[]来使用a 那些{}

countries = (e[0] for e in x)
Run Code Online (Sandbox Code Playgroud)

与列表理解相比,这将按需计算元素,并且如果数据源太长或生成器也将减少内存占用。