我在下面有一个清单。我需要使用它来创建仅具有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)
你有两种方法
使用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)
与列表理解相比,这将按需计算元素,并且如果数据源太长或生成器也将减少内存占用。