Прежде всего, пожалуйста, не Используйте список имен для списка. Вы закроете встроенный список, который рано или поздно заставит вас обнаружить ошибку.
Как уже упоминалось в комментариях к chepner, я настоятельно рекомендую преобразовать ваш список в словарь, чтобы иметь чистый спорт: сопоставление команд.
>>> lst = ["NYC Football", ["NY Giants","NY Jets"], "NYC Hockey", ["NY Rangers", "NY Islanders", "NJ Devils"]]
>>> teams = dict(zip(*[iter(lst)]*2))
>>> teams
{'NYC Football': ['NY Giants', 'NY Jets'], 'NYC Hockey': ['NY Rangers', 'NY Islanders', 'NJ Devils']}
Чтобы получить спорт, выпуск
>>> teams.keys()
['NYC Football', 'NYC Hockey']
Чтобы получить команды, выпуск
>>> teams.values()
[['NY Giants', 'NY Jets'], ['NY Rangers', 'NY Islanders', 'NJ Devils']]
Вы могли бы также не-гнездо этот список с itertools.chain
:
>>> list(chain.from_iterable(teams.values()))
['NY Giants', 'NY Jets', 'NY Rangers', 'NY Islanders', 'NJ Devils']
Я предположил, что порядок t он не имеет значения. Если это так, вы можете использовать OrderedDict
от модуля collections
.
>>> from collections import OrderedDict
>>> teams = OrderedDict(zip(*[iter(lst)]*2))
>>> for team in chain.from_iterable(teams.values()):
... print(team)
...
NY Giants
NY Jets
NY Rangers
NY Islanders
NJ Devils
Ваш список должен быть 'dict' в первую очередь:' { "NYC Футбол": [ "NY Giants", "Нью-Йорк Джетс"], "Нью-Йорк Хоккей": [...]. ..} '. Можно ли это изменить? – chepner
Да, это так. Наверное, я могу потом просунуть значения в каждом ключе этого дикта? –
Да. Теперь у вас есть список ассоциаций, где элемент 0 является ключом, который сопоставляется с элементом 1, элемент 2 сопоставляется с элементом 3 и т. Д. Это, по сути, представление формы 'dict' в списке, но с использованием' dict' позволяет вам применять структуру таким образом, чтобы ваш код не учитывал возможность искаженного списка. – chepner