因此,我将此索引作为字典。
index = {'Testfil2.txt': ['nisse', 'hue', 'abe', 'pind'], 'Testfil1.txt': ['hue', 'abe',
'tosse', 'svend']}
我需要反转索引,因此它将是一个字典,其中值的重复项合并为一个键,并以2个原始键作为值,如下所示:
inverse = {'nisse' : ['Testfil2.txt'], 'hue' : ['Testfil2.txt', 'Testfil1.txt'],
'abe' : ['Testfil2.txt', 'Testfil1.txt'], 'pind' : ['Testfil2.txt'], 'tosse' :
['Testfil1.txt'], 'svend' : ['Testfil1.txt']
是的,我手动输入了以上内容。
我的教科书具有反转字典的功能:
def invert_dict(d):
inverse = dict()
for key in d:
val = d[key]
if val not in inverse:
inverse[val] = [key]
else:
inverse[val].append(key)
return inverse
它适用于简单的key:value对
但是,当我尝试使用具有诸如值之类的列表的dict的函数时,出现index
以下错误消息:
invert_dict(index)
Traceback (most recent call last):
File "<pyshell#153>", line 1, in <module>
invert_dict(index)
File "<pyshell#150>", line 5, in invert_dict
if val not in inverse:
TypeError: unhashable type: 'list'
我已经花了一个小时寻找解决方案,这本书无济于事,我怀疑我可以以某种方式使用元组,但是我不确定如何使用。有什么帮助吗?
我已经尝试了,您想使用val not in inverse
它,但是如果“列表在字典中”,则无法检查它。(val
是列表)
对于您的代码,简单的更改就可以满足您的要求:
def invert_dict(d):
inverse = dict()
for key in d:
# Go through the list that is saved in the dict:
for item in d[key]:
# Check if in the inverted dict the key exists
if item not in inverse:
# If not create a new list
inverse[item] = [key]
else:
inverse[item].append(key)
return inverse
我目前无法获得双链接列表的反向函数来正确处理作业,我已经阅读了其他线程并在谷歌上搜索,但通常不同的是,我的问题以常量传递,它返回一个“dlist”。教授提供了一个“代码测试仪”,它说我的代码在执行“反向(反向(dlist c))”时,并不等于它本身就是“c”。[反转两次并不等于它本身]。 dlist类是: 这是反向函数: 每个数据列表节点都有一个指向前一个节点的指针和一个指向下一个节点的指针。dl
问题内容: 我想编写一个函数,该函数接收字典作为输入参数,并返回输入字典的反向函数,其中原始字典的值用作返回字典的键,而原始字典的键用作返回值。返回的字典,如下所述: 至 返回字典中的值列表应按升序排序。大小写无关紧要。这意味着所有单词都应转换为小写字母。例如,单词“准确”在原始词典中大写,但在返回的词典中,它用所有小写字母书写。 但是它返回此错误: 问题答案: 您可以像这样非常简单地进行操作:
问题内容: 在以下示例中: 其中:将打印foo中的所有元素。但是,将省略第一个或第0个元素。 我了解我可以使用foo.reverse()或foo [::-1]反向打印列表,但是我想了解为什么foo [6:0:-1]不能打印整个列表? 问题答案: 切片符号简而言之: 如果要在反转列表时包括第一个元素,则将中间元素留空,如下所示: 您还可以在这里找到有关Python切片的一些很好的信息: Unders
问题内容: 给定这样的字典: 如何将这张地图倒置即可: 问题答案: 对于Python 2.7.x 对于
问题内容: 我正在尝试转换以下列表: 像这样的字典: 我尝试了其他职位的答案,但没有任何帮助。我现在有以下代码: 这给了我这个错误: 任何帮助深表感谢。谢谢。 问题答案: 您可以从内置的枚举中获取列表的索引。您只需要反转索引值映射并使用字典理解来创建字典 哦,永远不要将变量命名为内置变量或类型。
问题内容: 我有一个字典列表,我需要从字典的给定键中获取值的列表(所有字典都具有相同的键)。 例如,我有: 我需要得到1,2,3 当然,我可以通过以下方式获得它: 但是我想找到一种更好的方法。 问题答案: 使用简单的列表推导(如果您确定每个字典都有键): 否则,您需要首先检查是否存在: