如何将列表转换为按对象名称分组的字典?
How do I convert a list into a dictionary grouped by object name?
假设我有一个列表 类:
[Blue((2, 1)), Blue((4, 2)), Orange((3, 2))]
我如何使用 Python 将其转换为这种格式的字典,同时不使用导入:
{'Blue': [Blue((2, 1)), Blue((4, 2))], 'Orange': [Orange((3, 2))]}
假设 Blue
和 Orange
是 classes,您可以使用 type()
和 [=15] 找到每个对象的 classname =] 属性。然后,您可以使用 collections.defaultdict
:
将每个 class 的实例收集到列表中
from collections import defaultdict
result = defaultdict(list)
for item in data:
result[type(item).__name__].append(item)
print(result)
如果不能使用导入,可以使用.setdefault()
代替:
result = {}
for item in data:
result.setdefault(type(item).__name__, []).append(item)
print(result)
假设我有一个列表 类:
[Blue((2, 1)), Blue((4, 2)), Orange((3, 2))]
我如何使用 Python 将其转换为这种格式的字典,同时不使用导入:
{'Blue': [Blue((2, 1)), Blue((4, 2))], 'Orange': [Orange((3, 2))]}
假设 Blue
和 Orange
是 classes,您可以使用 type()
和 [=15] 找到每个对象的 classname =] 属性。然后,您可以使用 collections.defaultdict
:
from collections import defaultdict
result = defaultdict(list)
for item in data:
result[type(item).__name__].append(item)
print(result)
如果不能使用导入,可以使用.setdefault()
代替:
result = {}
for item in data:
result.setdefault(type(item).__name__, []).append(item)
print(result)