как часть большего упражнения, я пытаюсь построить словарь на основе входов из меньших списков, но я борюсь со встроенной итерацией. Предположим, у меня есть следующий показательный пример:Словарь понимания, полученный из существующих списков
cities = ['newyork','london','tokyo','paris']
citypairs = [i for i in it.combinations(cities,2)]
airlines = ['delta', 'united']
я хочу построить словарь словарей, «информация», чьи ключи комбинации городов выше + каждой авиакомпании (так 12 всего ключей), и каждая из них ключи содержат ключ «city1» и «city2», который заполняется с помощью списка citypairs. Я пытаюсь что-то вроде:
info = {
'{city1}/{city2} {airline}'.format(city1=city1, city2=city2, airline=airline): {
"city1": city1, "city2": city2
for city1, city2 in citypairs
}
for city1, city2 in citypairs
for airline in airlines
}
, но я получаю неверную синтаксическую ошибку. просто более четко проиллюстрировать то, что я после этого, если вместо указанных выше попыток, я сделать:
info = {
'{city1}/{city2} {airline}'.format(city1=city1, city2=city2, airline=airline): {
"city1": "whatever", "city2": "whatever"
}
for city1, city2 in citypairs
for airline in airlines
}
, то это будет работать и просто создавать фиктивные значения «Какие бы ни было» для city1 и City2 для каждого ключа в «инфо «
Этот пример может показаться глупым или чрезмерно сложным, но в основе моего вопроса лежит вопрос о том, как я могу перебирать список кортежей, чтобы заполнить city1 и city2 в этом примере - я после этого, потому что реальный проект i мне нужна такая гибкость
Каковы требуемые значения 'info'? –
Неправильный синтаксис: '{" city1 ": city1," city2 ": city2 для города1, city2 в citypairs}'. Что это должно быть? Словарь с двумя записями на запись? Или вы просто хотите, чтобы оба из них были добавлены как отдельные записи, такие как '{k: v для city1, city2 в citypairs для k, v in (('city1', city1), ('city2', city2))}'? – TigerhawkT3
пример желаемого: информация [newyork/london delta] [city1] будет равна «newyork» и ...[city2] будет равняться «Лондону». – laszlopanaflex