умный способ объединить эти два списка в Python - PullRequest
1 голос
/ 02 ноября 2010

У меня есть следующие списки в Python, которые я хочу объединить в словарь / список:

names = ['banana','grapefruit','apple']
colors = ['yellow','pink','green']

до

fruits = [
{'name':'banana','color':'yellow'}, 
{'name':'grapefruit','color':'pink'},
{'name':'apple','color':'green'}
]

Каков наилучший способ сделать это?в настоящее время я завязываю свой мозг узлами, пытаясь писать циклы.

, пожалуйста, помогите!:)

Ответы [ 2 ]

11 голосов
/ 02 ноября 2010
fruits = [{"name": name, "color": color} for name, color in zip(names, colors)]
9 голосов
/ 02 ноября 2010
[ {'name': name, 'color': color} for name, color in zip(names, colors) ]

Применяются обычные условия:

  • В Python 2 itertools.izip рекомендуется для потенциально больших списков
  • Если фактические данные имеют много списков / атрибутов, это может быть обобщено, чтобы быть более элегантным в широком масштабе
  • Гарантия аннулируется, если сломана пломба
  • ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...