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]

カテゴリのすべての値を1つのキーにマージしてから、そのカテゴリとペアになる単語リストのすべての単語を1つのリストにマージします。それは可能ですか?

したがって、最終的には、そのリストを使用すると、代わりに次のように表示されます。

['高揚'、'幸せ']、['高揚'、'感謝']

に変わる:

{'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 に答える