我有一个函数,其中包含类似于下面的代码,它接受一个 OrdredDict 对象和一个字符串作为参数:
def AddToOrderedDict(ordered_dict, new_key):
ordered_dict[new_key] = []
ordered_dict = OrderedDict(sorted(ordered_dict.items()))
此函数会将键添加到字典中并对其进行排序,但一旦离开该函数就不会保持排序。
下面的代码演示了这种行为:
from collections import OrderedDict
def AddToOrderedDict(ordered_dict, new_key):
ordered_dict[new_key] = ['New', 'List']
ordered_dict = OrderedDict(sorted(ordered_dict.items()))
print(dict(ordered_dict))
ordered_dict = OrderedDict()
ordered_dict['A'] = ['List', 'A']
ordered_dict['C'] = ['List', 'C']
ordered_dict['D'] = ['List', 'D']
AddToOrderedDict(ordered_dict, 'B')
print(dict(ordered_dict))
输出:
{'A': ['List', 'A'], 'B': ['New', 'List'], 'C': ['List', 'C'], 'D': ['List', 'D']}
{'A': ['List', 'A'], 'C': ['List', 'C'], 'D': ['List', 'D'], 'B': ['New', 'List']}
为什么排序不保留在函数之外?