I have this index as a dict.
index = {
    'Testfil2.txt': ['nisse', 'hue', 'abe', 'pind'],
    'Testfil1.txt': ['hue', 'abe', 'tosse', 'svend']}
I need to invert the index so it will be a dict with duplicates of values merged into one key with the 2 original keys as values, like this:
inverse = {
    'nisse': ['Testfil2.txt'],
    'hue': ['Testfil2.txt', 'Testfil1.txt'],
    'abe': ['Testfil2.txt', 'Testfil1.txt'],
    'pind': ['Testfil2.txt'], 
    'tosse': ['Testfil1.txt'],
    'svend': ['Testfil1.txt']}
My textbook has this function for inverting dictionaries:
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
It works fine for simple key:value pairs, BUT, when I try that function with a dict that has lists as values such as my index, I get this error message:
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'
The book is no help, and I suspect that I can use tuples in some way, but I am not sure how.