2015-02-18 2 views
1

У меня есть список ниже. Мне нужно использовать его для создания нового списка только с именами COUNTRY. Пожалуйста, помогите мне Loop X, чтобы получить список Название страныКак создать новый список элементов из существующего списка в python?

x= [["UK", "LONDON", "EUROPE"],["US", "WASHINGTON", "AMERICA"],["EG", "CAIRO", "AFRICA"],["JP","TOKYO","ASIA"]] 

результат должен выглядит

UK 
US 
EG 
JP 
+0

страна = [у [1] для у в х] – user2839978

+0

Я думаю, что вы имеете в виду город имена ... Лондон, Вашингтон, Каир, и Токио не являются странами. –

ответ

3

У вас есть два пути

Использование для цикла

countries = [] 

for e in x: 
countries.append(e[0]) 

или со списком неполадок

countries = [e[0] for e in x] 
1

В городах LONDON, WASHINGTON, CAIRO, TOKYO присутствуют в 1-ой позиции (начиная с 0) по элементам списка. Таким образом, получите весь 1-й элемент из элементов списка путем сжатия списка.

например.

>>> 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'] 
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 совсем не говорит читателю.

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] 
Смежные вопросы