2017-01-24 5 views
-7

Jetzt gibt es eine Zeichenfolge „Hallo Welt“ Wenn ichWie kann ich den Rückgabewert in Python ändern?

set("hello world") 

es gibt {' ','d','e'...} statt {"hello","world"}

Wie kann ich den Rückgabewert der Set-Funktion ändern?

Wenn ich eine Klasse definieren muss, was muss ich beachten?

+3

Was genau versuchen Sie zu tun? –

+0

Es funktioniert nach Spezifikation - Sie übergeben eine _Sequenz_ an Ihre 'set' -Funktion. Ihre Sequenz ist keine Zwei-Element-Sequenz, sondern 'len (" Hallo Welt ") -Elementsequenz. –

+1

Wenn Sie Ihre Zeichenfolge in Wörter aufteilen möchten, können Sie 'set (" Hallo Welt ".split())' verwenden. Siehe ['str.split'] (https://docs.python.org/2/library/stdtypes.html#str.split). – khelwood

Antwort

3

Sie ändern den Rückgabewert der eingestellten Funktion nicht. Das ist in Python integriert, und Sie würden es sowieso nicht machen wollen.

Sie sollten, was Sie es passieren ändern:

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

Es sieht aus, dass Sie Ihren Satz split() wollen.

Anstatt also set():

set("hello world") 

sollten Sie split() verwenden:

"hello world".split(" ") 

Ausgang:

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

Oder vielleicht sogar diese Liste set() passieren, wenn dies was du erreichen willst:

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

Beachten Sie, dass 'split()' standardmäßig auf Leerzeichen aufgeteilt wird –

+2

"Explizit ist besser als implizit." - [Das Zen von Python] (https://www.python.org/dev/peps/pep-0020/#id3) –

+1

@ dot.Py Ich denke, '.split()' ist hier expliziter. Er möchte eine Menge Wörter, Sie erhalten leere Zeichenfolgen, wenn es mehr als 1 Leerzeichen gibt. – MYGz

1

Sie können eine Zeichenfolge setzen seiner Worte

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

print wordList 

Ausgang konvertieren:

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

, um eine Liste

print list(wordList) 

Ausgang:

['world', 'hello'] 
+0

@MYGz, Danke – aerokite

Verwandte Themen