1

所以我有一个看起来像这样的列表:

[['hostile', 'angry'], ['elated', 'happy'], ['elated', 'grateful'], ['depressed', 'sad']]

由此产生:

c.execute("""SELECT category, wordlist from wordtest order by category""")
                categoryfile = c.fetchall()
                categoryfile = [list(x) for x in categoryfile]

我希望将类别的所有值合并到一个键中,然后将与该类别配对的单词列表中的所有单词合并到一个列表中。那可能吗?

所以最终,有了那个列表,你会看到

['兴高采烈','快乐'],['兴高采烈','感激']

变成:

{'elated': ['happy', 'grateful']}
4

2 回答 2

4

使用collections.defaultdict

from collections import defaultdict

myList = [['hostile', 'angry'], ['elated', 'happy'], ['elated', 'grateful'], ['depressed', 'sad']]  

myDict = defaultdict(list)

for key, value in myList:
    myDict[key].append(value)
于 2012-07-13T20:31:51.543 回答
3
lis=[['hostile', 'angry'], ['elated', 'happy'], ['elated', 'grateful'], ['depressed', 'sad']]
dic={}
for x in lis:
    dic.setdefault(x[0],[]).append(x[1])
print dic   

输出:

{'depressed': ['sad'], 'elated': ['happy', 'grateful'], 'hostile': ['angry']}
于 2012-07-13T20:31:43.677 回答