字典理解,将项目划分为基于属性作为键的列表



我们有以下代码:

class A:
def __init__(self,x):
self.x = x
a = A(1)
b = A(2)
c = A(2)
d = A(2)
e = A(1)
list = [a,b,c,d,e]

如何获得以下输出?

{1:[a,e],
2:[b,c,d]
}

我在想这样的事情:

{item.x: [].append(item) for item in list}

谢谢 贾诺

来自collectionsdefaultdict是解决此问题的良好解决方案。

from collections import defaultdict
class A:
def __init__(self,x):
self.x = x
a = A(1)
b = A(2)
c = A(2)
d = A(2)
e = A(1)
mylist = [a,b,c,d,e]
out = defaultdict(list)
for e in mylist:
out[e.x].append(e)

最新更新