我们有以下代码:
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}
谢谢 贾诺
来自collections
的defaultdict
是解决此问题的良好解决方案。
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)