# 17、已知列表[ {“key”:9}, {“key”: 5}, {“key”: -1} ],定义一个函数,将该列表按照其元素的value值进行排序,并输出结果
def list_sore():
list = [{"key":9}, {"key": 5}, {"key": -1}]
list1 = []
# 遍历列表,取键值对
for temp in list:
# 取每一个键值对的值
value = temp["key"]
# 把值添加到列表
list1.append(value)
# 排序列表
list1.sort()
new_list = []
# 把排序后的值遍历到temp中
for temp in list1:
new_dict = {}
# 在新字典中添加键值对
new_dict["key"] = temp
# 把新字典添加到新列表中
new_list.append(new_dict)
print(new_list)
list_sore()
在这到题目中,得出的结果虽然是[{“key”:-1}, {“key”: 5}, {“key”: 9}]但也是不对的。在题目中取出列表里面字典对应的值之后又重新定义新列表把值放进去的时候是又建立了新的引用。所以虽然得出的结果是一样的,但是引用是不一样的。所以这道题的思路是为了避免引用的改变在做题的时候把列表里面字典的每个键值对赋值为变量a,b,c。这样的话就不会出现引用发生改变的问题。
|
|