2017-01-24 38 views
-7

現在,有一個字符串「Hello World」當我使用如何更改python的返回值?

set("hello world") 

返回{' ','d','e'...}而不是{"hello","world"}

我怎樣才能改變集函數的返回值?

如果我需要定義一個類,需要注意什麼?

+3

你究竟想要做什麼? –

+0

它符合規範 - 你傳遞一個_sequence_到你的'set'函數。你的序列不是兩個元素的序列,而是len(「hello world」)元素序列。 –

+1

如果你想把你的字符串分成單詞,你可以使用'set(「hello world」.split())'。請參見['str.split'](https://docs.python.org/2/library/stdtypes.html#str.split)。 – khelwood

回答

3

您不會更改設置函數的返回值。這是Python內置的,你不想這樣做。

你應該改變你傳遞給它什麼:

result = set(["hello", "world"]) 
2

它看起來要split()你的句子。

所以,相反的set()

set("hello world") 

你應該使用split()

"hello world".split(" ") 

輸出:

>>> ["hello", "world"] 

,或者甚至這個列表傳遞給set(),如果這是你想要實現的是:

set("hello world".split(" ")) 
+2

請注意,split()將默認分割爲空白 –

+2

「顯式優於隱式」。 - [Python的禪](https://www.python.org/dev/peps/pep-0020/#id3) –

+1

@ dot.Py我認爲'.split()'在這裏更加明確。他想要一組單詞,如果有超過1個空格,您將得到空的字符串。 – MYGz

1

您可以將字符串轉換爲一組的話

sentence = "hello world" 
wordList = set(sentence.split()) 

print wordList 

輸出:

set(['world', 'hello']) 

獲取列表

print list(wordList) 

輸出:

['world', 'hello'] 
+0

@MYGz,謝謝 – aerokite