2013-08-22 2 views
7

ich Tupel in Python haben, die wie folgt aussieht:Python, Split Tupel Elemente auf einzelne Sachen

tuple = ('sparkbrowser.com', 0, 'http://facebook.com/sparkbrowser', 'Facebook') 

und ich will es aufzuschlüsseln, so konnte ich jedes Element von Tupel erhalten unabhängig, so konnte ich etwas tun :

domain = "sparkbrowser.com" 
level = 0 
url = "http://facebook.com/sparkbrowser" 
text = "Facebook" 

oder etwas Ähnliches, Mein Bedürfnis ist, jedes Einzelteil getrennt zu haben. Ich habe versucht, mit .split(",") auf Tupel aber ich habe Fehler bekommen, die besagt, dass Tupel nicht Option geteilt haben

Jede Hilfe oder Beratung ist willkommen

+0

es heißt [* Sequenz Auspacken *] (https://docs.python.org/2/tutorial/datastructures. html # tuples-and-sequences) (siehe letzten Absatz) oder einfach * entpacken *. – n611x007

Antwort

16

Python können Sequenzen natürlich entpacken.

domain, level, url, text = ('sparkbrowser.com', 0, 'http://facebook.com/sparkbrowser', 'Facebook') 
+0

Danke, das ist es, ich dachte nicht, dass das so einfach ist :) – dzordz

2
>>> domain, level, url, text = ('sparkbrowser.com', 0, 'http://facebook.com/sparkbrowser', 'Facebook') 
>>> domain 
'sparkbrowser.com' 
>>> level 
0 
>>> url 
'http://facebook.com/sparkbrowser' 
>>> text 
'Facebook' 
3

Am besten nicht tuple als Variablennamen zu verwenden.

Sie könnten split(',') verwenden, wenn Sie eine Zeichenfolge wie 'sparkbrowser.com,0,http://facebook.com/sparkbrowser,Facebook' hätten, die Sie in eine Liste konvertieren müssten. Sie haben jedoch bereits ein Tupel, so dass es hier nicht nötig ist.

Wenn Sie wissen, dass Sie genau die richtige Anzahl von Komponenten, können Sie es auspacken direkt

the_tuple = ('sparkbrowser.com', 0, 'http://facebook.com/sparkbrowser', 'Facebook') 
domain, level, url, text = the_tuple 

Python3 hat leistungsfähige auspacken Syntax. Um nur die domain und die text könnten Sie

domain, *rest, text = the_tuple 

rest enthält [0, 'http://facebook.com/sparkbrowser']