У меня есть список словарей. Можно предположить, что в каждом списке есть словари того же формата. Давайте назовем этот формат:Разбивка списка по частям по
dict_sample={'a':0,'b':1}
Давайте также сказать, что a
является случайным числом, в то время как б может быть один из нескольких чисел (или строк, по этому вопросу). Я хочу отсортировать все значения a
на b
. Например, если у меня есть список:
a b
54 1
25 0
53 1
532 2
132 0
list=[{'a':54,'b':1},{'a':25,'b':0},{'a':53,'b':1},{'a':532,'b':2},{'a':132,'b':0}]
Я хотел бы разбить его на 3 списка. Списки будут включать (Order не важно)
0 list-> [25,132]
1 list-> [54,53]
2 list-> [532]
Я знаю, что могу побить все a
«S из списка следующим образом, но я не могу вполне понять, элегантное решение для сортировки a
» S по b
«s. Какие-либо предложения? Мой код до сих пор выглядит следующим образом:
[row['a'] for row in list]
То, что я хотел бы что-то вроде этого:
index=0 #This could be looped through, or just chosen for one specific value
[row['a'] if row['b']==index for row in list]
Почему бы вам не просто '(a, b)' кортежи? – user2357112
Мои настоящие словари довольно длинны, и я не хочу вспоминать, что такое схема индексирования.Я бы просто дал каждому значению имя. – PearsonArtPhoto
'(a, b)' ['namedtuple'] (http://docs.python.org/2/library/collections.html#collections.namedtuple) s может быть тогда полезен. – user2357112