Python 字典理解,以属性为键,将项目划分为列表。

Python 字典理解,以属性为键,将项目划分为列表。,python,python-3.x,Python,Python 3.x,我们有以下代码: 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} 谢谢 Jano来自集合的defaultdict是解决此问题的好方法 f

我们有以下代码:

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}
谢谢
Jano

来自
集合的
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)

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)