1

文と数字の 2 つの変数を取る関数を作成する必要があります。この関数は、文字列内の一意の単語の数と同じかそれ以上の数を返す必要があります。結果の例は次のようになります。

>>> unique_func("The sky is blue and the ocean is also blue.",3)
    6

解決策について私が考えることができるのは

def unique_func(sentence,number):
    sentence_split = sentence.lower().split()
    for w in sentence_split:
        if len(w) >= number:

今、解決策を続ける方法がわかりません。誰でも私を助けることができますか?

4

3 に答える 3

2

これを試して:

from string import punctuation

def unique_func(sentence, number):
    cnt = 0
    sentence = sentence.translate(None, punctuation).lower()
    for w in set(sentence.split()):
        if len(w) >= number:
            cnt += 1
    return cnt 

または:

def unique_func(sentence, number):
    sentence = sentence.translate(None, punctuation).lower()
    return len([w for w in set(sentence.split()) if len(w) >= number])
于 2013-04-17T04:55:38.287 に答える
1
>>> from string import punctuation
>>> def unique_func(text, n):
        words = (w.strip(punctuation) for w in text.lower().split())
        return len(set(w for w in words if len(w) >= n))


>>> unique_func("The sky is blue and the ocean is also blue.",3)
6
于 2013-04-17T04:58:50.693 に答える
1

ここにヒントがあります:

>>> set('The sky is blue and the ocean is also blue'.lower().split())
{'is', 'also', 'blue', 'and', 'the', 'sky', 'ocean'}
>>> len(set('The sky is blue and the ocean is also blue'.lower().split()))
7
于 2013-04-17T04:56:21.767 に答える