json多个字典(单键值对)按照value排序
list1 = [{"A":9}, {"B":2}, {"C":5}, {"D":2}]
dict1 = {}
for i in list1:
dict1.update(i) # 合并成 {'A': 9, 'B': 2, 'C': 5, 'D': 2}
s = sorted(dict1.items(), key=lambda item:item[1], reverse=True)
list2 = [{i[0] : i[1]} for i in s]
print(list2)
----------------------------------
结果是:
[{'A': 9}, {'C': 5}, {'B': 2}, {'D': 2}
sort 和 sorted
sort ------列表排序 list1.sort() 该方法不能用于字典排序
sorted ------list2 = sorted(list1) dict2 = sorted(dict1) 可用于字典、列表、元组、以及下面说的数据排序,得有新的接收值
字典的dict.items() 是一个类似于元组的数据
dict1 ------------------- {'A': 9, 'B': 2, 'C': 5, 'D': 2}
dict1.items() ------------------ dict_items([('A', 9), ('B', 2), ('C', 5), ('D', 2)])
json数据中按某个key进行排序的方法
json = [{"time":3,"value":"c"}, {"time":11,"value":"a"}, {"time":7,"value":"b"}]
json.sort(key=lambda x:x["time"], reverse=True)
print(json)
json相同key合并相加value值
list1 = [{"A":1}, {"B":2}]
list2 = [{"A":3}, {"B":4}]
list3 = []
for i,j in zip(list1,list2):
dict1 = {
list(i.keys())[0] : i[list(i.keys())[0]] + j[list(i.keys())[0]]
}
list3.append(dict1)
print(list3)
————————————————————————————————
结果是:
[{'A': 4}, {'B': 6}]
列表一个小算法
a = [1,2,3,4,5,6]
b = [1,2,3,7,8]
print([x for x in a if x not in b])
------------------------
[4,5,6]
按照不同的 level 分成不同的列表
element_list = [
{"level":1, "age":77},
{"level":1, "age":51},
{"level":2, "age":18},
{"level":3, "age":26}
]
dict1 = {}
for element in element_list:
dict1[element['level']] = dict1.get(element['level'], []) + [element]
print(dict1)
-------------------打印结果
{
1: [{'level': 1, 'age': 77}, {'level': 1, 'age': 51}],
2: [{'level': 2, 'age': 18}],
3: [{'level': 3, 'age': 26}]
}