【问题标题】:How to combine the same words in sets into one word如何将集合中的相同单词组合成一个单词
【发布时间】:2020-08-30 18:59:51
【问题描述】:

使函数唯一(一,二)可以同时计算句子1和句子2中存在的唯一单词的数量。该函数具有将所有相同单词组合成一个单词的特殊能力

def unique (one, two):

    result= unique('I like food', 'I like cat')
    print(len(result))
    print(sorted(result))

输出

4
['food', 'cat', 'likelike', 'II']

【问题讨论】:

  • 嗨!你有什么问题?
  • 请提供unique函数的代码
  • 我认为问题是如何编写独特的功能。
  • 我想把同一个词做一个,好像cat('cat', 'cat')的集合中有2个词,那么结果就是['catcat']
  • @CodePope 他想将两个cats 连接在一起得到catcat

标签: python list dictionary set dataset


【解决方案1】:
from collections import defaultdict
def unique (one, two):
    uniques = defaultdict(int)
    for word in one.split():
        uniques[word] = uniques[word] + 1
    for word in two.split():
        uniques[word] = uniques[word] + 1
    list_of_words = [word * count for word, count in uniques.items()]
    return list_of_words

result= unique('I like food', 'I like cat')
print(len(result))
print(sorted(result))

还有输出:

4
['II', 'cat', 'food', 'likelike']

【讨论】:

  • 我认为这不会产生问题中提供的输出。
  • 我认为用户希望代码实现unique函数
【解决方案2】:

这可能对你有帮助

from collections import defaultdict

def unique(s1, s2):
    d = defaultdict(list)
    for word in s1.split(' '):
        d[word].append(word)
    for word in s2.split(' '):
        d[word].append(word)
    return [''.join(word) for _, word in d.items()]

【讨论】:

    【解决方案3】:
    def unique(one, two):
        words = {}
        sentence = one.split() + two.split()
        for word in sentence:
            if word in words.keys():
                words[word] += word
            else:
                words[word] = word
    
        return [word for word in words.values()]
    
    print(unique("I like food", "I like cat"))
    

    将打印['food', 'cat', 'likelike', 'II']

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 2010-10-19
      • 2012-08-20
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多