이 특히 예쁜 것이 아니라 내가 생각할 수있는 대부분의 경우에 작동하는 것 같다. 나는 이것이 너무 정돈 될 수 있고 대소 문자를 구별하기 쉽도록해야한다고 확신한다.
def freqs(list):
words = {}
for word in list:
words[word] = words.get(word, 0) + 1
return words
def added_and_removed(a, b):
af = freqs(a.split())
bf = freqs(b.split())
removed = []
added = []
for key in af:
num = bf.get(key)
if num == None:
if af[key] > 1:
words = [key]*af[key]
removed.extend(words)
else:
removed.append(key)
for key in bf:
num = af.get(key)
if num == None:
added.append(key)
elif num > 1:
words = [key]*(num-1)
removed.extend(words)
return added, removed
a = 'hello hello hello my name is Dave dave bar foo'
b = 'hello my guys is test easy rob dave beef foo'
added, removed = added_and_removed(a, b)
print added
print removed
는
['beef', 'rob', 'easy', 'test', 'guys']
['bar', 'name', 'Dave', 'hello', 'hello']
은''와' "세계 안녕" "안녕 세계"'에 원하는 출력을 무엇입니까 ? –
제안 된 사례를 더 제공 할 수 있습니까? – jamylak
예가 "최고가 아니 었습니까?" 예상 입력 대 예상 출력의 목록은 매우 유용합니다. – bukzor