Я не уверен, что лучший способ написать название для этого вопроса, так извините за несколько плохой титул. Вместо этого я просто напишу пример.Сортировка списка формы [(одно значение), [(кортеж 1), (tuple2), ...], (другое значение), [...]]
Что я хочу сделать, это взять элементы из словаря и поместить их в список (который я сделал со следующим кодом).
for key,val in teamDict.items(): teamlist.append((key,val))
Теперь этот список содержит информацию о командах в НФЛ, и хранится в виде:
[('DAL', [(2011, 'Chauncey Washington', 47.29080932784636, 1, -1, 0, 0), (2011, 'DeMarco Murray', 90.58014654220617, 164, 897, 2, 1)...]]
И так далее, с каждой команды представлены. Теперь то, что я хочу, это выход, чтобы выглядеть примерно так
Roy Helu 2011 81.33
Ryan Torain 2011 78.16
Tim Hightower 2011 84.20
Andre Brown 2010 50.03
Brandon Banks 2010 69.24
Clinton Portis 2010 108.35
Только для каждого игрока с 2011 года, которые будут напечатаны после того, как каждый игрок с 2010 года было напечатано. Все правильно отформатировано и правильно распечатывается, единственная проблема, с которой я сталкиваюсь, - это не возможность правильно сортировать годы. Также здесь есть код, который сортирует список:
for item in teamlist:
for sub_item in item:
teamName = item[0]
if user_input == teamName:
for sub_sub_item in sub_item:
print(" {:<25} {:^6} {:>8.2f}".format(sub_sub_item[1], sub_sub_item[0], sub_sub_item[2]))
Я знаю о возможности ключа = operator.itemgetter(), но я не уверен, что если бы даже работать в список, как это или где поместите его в мои петли.
Любые подсказки, чтобы указать мне в правильном направлении, будут очень признательны.
Для включения пар ключ-значение из словаря в список кортежей, сделать 'my_dict. пункты() '. Если вы находитесь на Python 3, тогда выполните 'list (my_dict.items())'. –
Просто чтобы быть понятным, мы печатаем только одну команду за раз? –