def positive(self):
total = {}
final = {}
for word in envir:
for i in self.lst:
if word in i:
if word in total:
total[word] += 1
else:
total[word] = 1
final = sorted(total, reverse = True)
return total
返回
{'climate': 10, 'ecosystem': 1, 'energy': 6, 'human': 1, 'world': 2, 'renewable': 2, 'native': 2}
我想把这本字典带回一个有序的字典。你如何对它进行排序并返回字典?
答案 0 :(得分:1)
有序字典可以满足您的需求
from collections import OrderedDict
如果您想按字典顺序订购商品,请执行以下操作
d1 = {'climate': 10, 'ecosystem': 1, 'energy': 6, 'human': 1, 'world': 2, 'renewable': 2, 'native': 2}
od = OrderedDict(sorted(d1.items(), key=lambda t: t[0]))
od
的内容:
OrderedDict([('climate', 10),
('ecosystem', 1),
('energy', 6),
('human', 1),
('native', 2),
('renewable', 2),
('world', 2)])
如果您想准确指定字典的顺序,请将它们存储为元组并按顺序存储。
t1 = [('climate',10), ('ecosystem', 1), ('energy',6), ('human', 1), ('world', 2), ('renewable', 2), ('native', 2)]
od = OrderedDict()
for (key, value) in t1:
od[key] = value
od
现在
OrderedDict([('climate', 10),
('ecosystem', 1),
('energy', 6),
('human', 1),
('world', 2),
('renewable', 2),
('native', 2)])
在使用中,它就像普通字典一样,但指定了内部内容的顺序。
答案 1 :(得分:0)
Python中的字典没有明确的顺序(3.6除外)。哈希表中没有'order'的属性。要在Python中保留顺序,请使用元组列表:
unordered = (('climate', 10,), ('ecosystem', 1)) # etc
在上面调用sorted(unordered)
将返回,其中'key'是每个元组中的第一个项目。在这种情况下,您无需向sorted()
提供任何其他参数。
要进行迭代,请使用for x, y in z:
,其中z
是列表。