我有一个Python字典列表。以下是一个虚构的例子,其中包含头发颜色和种族。
some_list = [
{'blond': 3, 'race': 'WHITE'},
{'black': 4, 'race': 'WHITE'},
{'light brown': 6, 'race': 'WHITE'},
{'black': 2, 'race': 'AFRICAN_AMERICAN'},
{'blond': 1, 'race': 'AFRICAN_AMERICAN'},
{'dark brown': 1, 'race': 'AFRICAN_AMERICAN'}
]
头发颜色是其中一个键,头发颜色的值是给定种族拥有该头发颜色的人数。我不知道有多少种头发颜色,也不知道有多少种族。我想将此列表转换为包括所有种族的所有头发颜色的计数,以便结果包括对于未在给定种族中列出的颜色的0计数:
some_list = [
{'blond': 3, 'race': 'WHITE'},
{'black': 4, 'race': 'WHITE'},
{'light brown': 6, 'race': 'WHITE'},
{'dark brown': 0, 'race': 'WHITE'},
{'black': 2, 'race': 'AFRICAN_AMERICAN'},
{'blond': 1, 'race': 'AFRICAN_AMERICAN'},
{'dark brown': 1, 'race': 'AFRICAN_AMERICAN'},
{'light brown': 0, 'race': 'AFRICAN_AMERICAN'}
]
就我而言,我无法想出一个简单的“Python”方法来轻松地完成这个任务。肯定有一些技巧吧?有人知道解决这个问题的简洁方法吗?
set(..)
查找唯一的颜色/种族,然后使用itertools.product(..)
查找所有组合。在some_list
中没有条目的地方填充零。告诉我们您卡住了哪里。 - UltraInstinct