사용하십시오 collections.defaultdict()
object 편의를 위해, 당신의 단어를 수집합니다 :
from collections import defaultdict
words = defaultdict(list)
for entry in raw:
key, word = entry.split()
words[key].append(word)
raw = [' '.join(v) for v in words.values()]
defaultdict
은 코드를 여기에서 정리합니다. 그것은 키가 아직 존재하지 않으면 공장을 호출 할 의 dict
하위 클래스에 불과합니다. defaultdict
없이 당신은 사용해야 할 것 :
words = {}
을하고 루프 :
words.setdefault(key, []).append(word)
데모 :
귀하의 의견 목록이 정렬 순서는 중요하다
>>> from collections import defaultdict
>>> raw = ['opst tops', 'opst opts', 'opst pots', 'eip pie', 'eip epi']
>>> words = defaultdict(list)
>>> for entry in raw:
... key, word = entry.split()
... words[key].append(word)
...
>>> [' '.join(v) for v in words.values()]
['pie epi', 'tops opts pots']
경우를 itertools.groupb()
을 사용할 수도 있습니다.
from itertools import groupby
raw = [' '.join(w.split()[1] for w in words)
for key, words in groupby(raw, key=lambda e: e.split()[0])]
데모 :
>>> from itertools import groupby
>>> [' '.join(w.split()[1] for w in words)
... for key, words in groupby(raw, key=lambda e: e.split()[0])]
['tops opts pots', 'pie epi']
무언가 해보셨습니까? – markcial
은 다음과 같아야합니다 : raw = [ 'opst tops', 'opst opts', 'opst pots', 'eip pie', 'eip epi']? –
네, @ da_steve101 알림을 보내 주셔서 감사합니다. –