对于元素为字典的列表排序方法

 

对此成分为字典的列表排序方法,成分字典列表排序

现有list如

list_to_be_sorted = [{‘lv’: 44, ‘age’: 10},
          {‘lv’: 12, ‘age’: 39},
          {‘lv’: 88, ‘age’: 22},
          {‘lv’: 6, ‘age’: 2},
          {‘lv’: 3, ‘age’: 4}, ]

将该列表依据age字段的value实行排序。

 

from operator import itemgetter

list_to_be_sorted = [{'lv': 44, 'age': 10},
                     {'lv': 12, 'age': 39},
                     {'lv': 88, 'age': 22},
                     {'lv': 6, 'age': 2},
                     {'lv': 3, 'age': 4}, ]
new_list = sorted(list_to_be_sorted, key=itemgetter('age'))
print(new_list)

 

假定急需依照lv与age字段value的乘积作为排序规范,能够参见以下措施:

list_to_be_sorted = [{'lv': 44, 'age': 10},
                     {'lv': 12, 'age': 39},
                     {'lv': 88, 'age': 22},
                     {'lv': 6, 'age': 2},
                     {'lv': 3, 'age': 4}, ]
new_list = sorted(list_to_be_sorted, key=lambda k: k['lv'] * k['age'])
print(new_list)

 

现有list如 list_to_be_sorted = [{ ‘lv’: 44 , ‘age’: 10} , { ‘lv’: 12
, ‘age’: 39} , { ‘lv’: 88 , ‘age’: 22}…

>>> d = dict(name=’visaya’, age=21)
>>> d1= {‘age’: 20, ‘sex’: ‘male’}
>>> d2 = zip([‘a’, ‘b’], [1, 2])

将该列表遵照age字段的value举办排序。

#字典的丰硕、删除、修改操作
dict = {“a” : “apple”, “b” : “banana”, “g” : “grape”, “o” : “orange”}
dict[“w”] = “watermelon”
del(dict[“a”])
dict[“g”] = “grapefruit”
print dict.pop(“b”)
print dict
dict.clear()
print dict
#字典的遍历
dict = {“a” : “apple”, “b” : “banana”, “g” : “grape”, “o” : “orange”}
for k in dict:
    print “dict[%s] =” % k,dict[k]
#字典items()的使用
dict = {“a” : “apple”, “b” : “banana”, “c” : “grape”, “d” : “orange”}
#每种成分是多少个key和value组成的元组,以列表的方法出口
print dict.items()
#调用items()落成字典的遍历
dict = {“a” : “apple”, “b” : “banana”, “g” : “grape”, “o” : “orange”}
for (k, v) in dict.items():
    print “dict[%s] =” % k, v
#调用iteritems()完毕字典的遍历
dict = {“a” : “apple”, “b” : “banana”, “c” : “grape”, “d” : “orange”}
print dict.iteritems()
for k, v in dict.iteritems():
    print “dict[%s] =” % k, v
for (k, v) in zip(dict.iterkeys(), dict.itervalues()):
    print “dict[%s] =” % k, v
   
#选择列表、字典作为字典的值
dict = {“a” : (“apple”,), “bo” : {“b” : “banana”, “o” : “orange”}, “g” :
[“grape”,”grapefruit”]}
print dict[“a”]
print dict[“a”][0]
print dict[“bo”]
print dict[“bo”][“o”]
print dict[“g”]
print dict[“g”][1]
 
dict = {“a” : “apple”, “b” : “banana”, “c” : “grape”, “d” : “orange”}
#输出key的列表
print dict.keys()
#输出value的列表
print dict.values()
#每一个成分是四个key和value组成的元组,以列表的格局出口
print dict.items()
dict = {“a” : “apple”, “b” : “banana”, “c” : “grape”, “d” : “orange”}
it = dict.iteritems()
print it
#字典七月素的获得格局
dict = {“a” : “apple”, “b” : “banana”, “c” : “grape”, “d” : “orange”}
print dict
print dict.get(“c”, “apple”)         
print dict.get(“e”, “apple”)
#get()的等价语句
D = {“key1” : “value1”, “key2” : “value2”}
if “key1” in D:
    print D[“key1”]
else:
    print “None”
#字典的更新
dict = {“a” : “apple”, “b” : “banana”}
print dict
dict2 = {“c” : “grape”, “d” : “orange”}
dict.update(dict2)
print dict
#udpate()的等价语句
D = {“key1” : “value1”, “key2” : “value2”}
E = {“key3” : “value3”, “key4” : “value4”}
for k in E:
    D[k] = E[k]
print D
#字典E中涵盖字典D中的key
D = {“key1” : “value1”, “key2” : “value2”}
E = {“key2” : “value3”, “key4” : “value4”}
for k in E:
    D[k] = E[k]
print D
#设置暗许值
dict = {}
dict.setdefault(“a”)
print dict
dict[“a”] = “apple”
dict.setdefault(“a”,”default”)
print dict
#调用sorted()排序
dict = {“a” : “apple”, “b” : “grape”, “c” : “orange”, “d” : “banana”}
print dict  
#按照key排序 
print sorted(dict.items(), key=lambda d: d[0])
#按照value排序 
print sorted(dict.items(), key=lambda d: d[1])
#字典的浅拷贝
dict = {“a” : “apple”, “b” : “grape”}
dict2 = {“c” : “orange”, “d” : “banana”}
dict2 = dict.copy()
print dict2

现有list如

3.3 注意
>>> for k in list(d.keys()).sort():
…     print(k, d[k])
… 
Traceback (most recent call last):
  File “<stdin>”, line 1, in <module>
TypeError: ‘NoneType’ object is not iterable

list_to_be_sorted = [{‘lv’: 44, ‘age’: 10},
          {‘lv’: 12, ‘age’: 39},
          {‘lv’: 88, ‘age’: 22},
          {‘lv’: 6, ‘age’: 2},
          {‘lv’: 3, ‘age’: 4},
]

在python中写汉语注释会报错,那时只要在头顶加上# coding=gbk即可

list_to_be_sorted = [{'lv': 44, 'age': 10},
                     {'lv': 12, 'age': 39},
                     {'lv': 88, 'age': 22},
                     {'lv': 6, 'age': 2},
                     {'lv': 3, 'age': 4}, ]
new_list = sorted(list_to_be_sorted, key=lambda k: k['lv'] * k['age'])
print(new_list)

#字典的深拷贝
import copy
dict = {“a” : “apple”, “b” : {“g” : “grape”,”o” : “orange”}}
dict2 = copy.deepcopy(dict)
dict3 = copy.copy(dict)
dict2[“b”][“g”] = “orange”
print dict
dict3[“b”][“g”] = “orange”
print dict