Я новичок в питоне. В Python я хочу сортировать элементы словаря на основе буквенно-цифровых ключей.
Фрагмент кода выглядит следующим образом:
items={'100 kg': u"apple", '500 kg': u"cabbage", '1020 kg': u"banana", '259 GB': u"carrot"}
Я хочу отсортировать его по их количеству в порядке возрастания. Есть ли способ сделать это в Python?
Добавив , я отсортировал словарные ключи, используя предложенную технику. После этого я хочу добавить отсортированный ключ и соответствующее ему значение в другой новый словарь, чтобы я мог получить словарь отсортированным образом, но новый словарь не хранит данные в том порядке, в котором я вставляю.
Итак, для этого я использовал orderDict Python.
Для этого я использую код как:
import collections
items={'100 kg': u"apple", '500 kg': u"cabbage", '1020 kg': u"banana", '259 kg': u"carrot"}
sorted_keys = sorted(items, key = lambda x : int(x.split()[0]))
sorted_capacity = collections.OrderedDict()
for j in sorted_keys:
for i in items:
if j == i:
print i
sorted_capacity[j]=items[j]
break
Здесь я получаю сообщение об ошибке: AttributeError: объект 'module' не имеет атрибута 'OrderedDict'. Что может быть причиной этого?