词典列表的列表我有一个对象,它是字典的名单列表:排序在python
myObject =[[{ "play": 5.00, "id": 1, "uid": "abc" }, \
{ "play": 1.00, "id": 2, "uid": "def" }], \
[{ "play": 6.00, "id": 3, "uid": "ghi" }, \
{ "play": 7.00, "id": 4, "uid": "jkl" }], \
[{ "play": 3.00, "id": 5, "uid": "mno" }, \
{ "play": 1.00, "id": 6, "uid": "pqr" }]]
我想排序play
值的每个字典嵌套的总和名单名单。然后,对象将被排序是这样的:
myObject =[[{ "play": 6.00, "id": 3, "uid": "ghi" }, \
{ "play": 7.00, "id": 4, "uid": "jkl" }], \
[{ "play": 5.00, "id": 1, "uid": "abc" }, \
{ "play": 1.00, "id": 2, "uid": "def" }], \
[{ "play": 3.00, "id": 5, "uid": "mno" }, \
{ "play": 1.00, "id": 6, "uid": "pqr" }]]
如果它只是一个类型的字典的名单,然后:
sorted(myObject, key=sum(map(itemgetter(play))), reverse=True)
会工作。我无法弄清楚如何做到这一点,没有循环在列表中,计算总和,然后排序。这就是我现在正在做的,但我试图通过删除循环来提高此代码的效率,因为我的列表中有100多个列表。
正如一个注释:在这种情况下,你不需要尾随的'''''续行。由于行以逗号结尾,列表文字仍然“打开”,Python会自动期待下一行继续。 – poke