我有一個文本檔案,看起來像這樣的
輻射(a) 振動(n) 筆(n) 輕輕地(d) 凝視(v) 明亮(a) 塵埃(n) 優雅(a) 炫目(a) 突然地(d)
running(a) cheerfully(d) wriggles(v) inkwell(n) sky(n) running(a) divine(a) tear(n) rappidly(d)
我需要python讀入這個文本檔案,并回傳給我一個這樣的字典概覽:
我需要python讀入這個文本檔案,并回傳給我一個這樣的字典概覽:
{'a': ['radiant', 'brilliant', 'graceful', . ..],
'n': ['vibe', 'pen', ' dust', ... ] 。
'd': ['輕快地', '突然地', '歡快地', ...],
'v': ['盯著', '扭動', '微笑',...]}.
誰能幫助我嗎?謝謝 :)
uj5u.com熱心網友回復:
試試這個:
from collections import defaultdict
st = 'radiant(a) vibe(n) pen(n) lightly(d) stares(v) bright(a) dust(n) graceful(a) dazzling(a) abruptly(d) running(a) cheerfully(d) wriggles(v) inkwell(n) sky(n) running(a) divine(a) tear(n) rappidly(d) ' /span>
d = defaultdict(list)
for i in st.split():
d[i[-2]].append(i[:-3])
輸出:
>>> print(d)
defaultdict(<class 'list'> , {
'a': ['radiant', 'brilliant', 'graceful', '耀眼', '奔跑', '奔跑', '神圣'] 。
'n': ['vibe', 'pen', ' dust', '墨池', '天空', '眼淚'] 。
'd': ['lightly', 'abruptly', 'cheerfully', 'rappidly'] 。
'v': ['盯著', '蠕動'].
})
uj5u.com熱心網友回復:
嘗試itertools.groupby:
from itertools import groupby
{k[1:-1]: [x[:-3] forx in v] for k, v in groupby(sorted(St. split(), key=lambda x: x[-3:]), key=lambda x: x[-3: ])}。
或者dict.setdefault以提高效率:
dct={}。
for x in st.split():
dct.setdefault(x[-2:-1], []).append(x[:-3] )
print(dct)
這兩段代碼的輸出:
{'a': ['radiant', 'bright', 'graceful', 'dazzling', '運行', '運行', '神圣'], 'n': ['vibe', 'pen', ' dust', '墨池', '天空', '眼淚'], 'd': ['lightly', 'abruptly', 'cheerfully', 'rappidly'], 'v': ['stares', 'wriggles']}。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/311392.html
標籤:
下一篇:如何轉換這個dict輸出?
