因此,我对以下方面的理解:
dict((x.key, x.value) for x in y)
当然,问题在于,如果存在多个x.key
具有相同值的s,则它们会折叠在一起,最后一个x.value
以那个x.key
唯一的唯一成员存在。我实际上想将结果字典的值列出:
{
'key1': ['value1'],
'key2': ['value2', 'value3', 'value4'],
'key3': ['value5'],
# etc.
}
这种理解是否可能?
您可以将元素一一添加到默认情况下包含空列表的字典中:
import collections
result_dict = collections.defaultdict(list)
for x in y:
result_dict[x.key].append(x.value)
您也可以执行非常相似的操作,而不必使用collections模块:
result_dict = {}
for x in y:
result_dict.setdefault(x.key, []).append(x.value)
但这可以说是不太清晰。
一个等效的,更清晰的(不需要“解析”不太常见的setdefault
),但更加行人化的基本Python方法是:
result_dict = {}
for x in y:
if x.key not in result_dict:
result_dict[x.key] = []
result_dict[x.key].append(x.value)
第一个解决方案显然是首选,因为它同时简洁,清晰,快速。
问题内容: 我有以下格式的词典列表: 我想将此字典列表分组为一个字典,例如: 我目前所做的是,遍历所有字典并创建键列表,然后再次遍历该键以创建。我想知道是否有更简单的方法来完成此任务。有人可以帮忙吗? 问题答案: 谷歌的事情: python列表理解 python dict理解 蟒蛇星 python dict获取 python设置联合
问题内容: 对于学校,我正在为游戏的排名列表编写一个小程序。为此,我使用字典,将玩家的名称作为键名,将分数作为键值。将有10场比赛,每场比赛都有一个自动排名系统,我将其打印到文件中。香港专业教育学院已经设法编码排名系统,但现在我面临更大的挑战,我无法解决: 我必须进行总体排名,这意味着someplayername可以在具有多个得分的多个比赛中使用,但我只需要保留重复项中的最高得分即可。 简而言之
如何将包含key:pair值(如{Hello:3,Bye:4})的字典转换为两个不同的列表?一个用于键,一个用于值? 谢谢
问题内容: 这个问题已经在这里有了答案 : 9年前关闭。 我有两个清单: 我需要从这些列表中创建一个元组列表,如下所示: 我尝试这样做: 但导致: 即x中每个元素与y中每个元素的元组列表…什么是我想做的正确方法?谢谢… 编辑: 在编辑之前提到的其他两个重复是我的错,我将其缩进另一个for循环中是错误的… 问题答案: 使用内置函数: 在Python 3中: 在Python 2中:
键值列表 图 字典 到目前还没有讲到任何关联性数据结构,即那种可以将一个或几个值关联到一个key上。 不同语言有不同的叫法,如字典,哈希,关联数组,图,等等。 Elixir中有两种主要的关联性结构:键值列表(keyword list)和图(map)。 7.1-键值列表 在很多函数式语言中,常用二元元组的列表来表示关联性数据结构。在Elixir中也是这样。 当我们有了一个元组(不一定仅有两个元素的元
字典的键是日期,值是一个长度不同的列表 例如,字典是 我想要的是像这样的数据帧