2013-08-22 7 views
7

ho tupla in Python che assomiglia a questo:Python, articoli tupla dividere a roba singolo

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

e voglio dividerlo in modo ho potuto ottenere ogni elemento dalla tupla indipendente così ho potuto fare qualcosa di simile :

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

o qualcosa di simile, la mia necessità è di avere ogni elemento separato. Ho provato con .split(",") su tuple, ma ho l'errore che dice che tupla non dispone di dividere opzione

Qualsiasi aiuto o consiglio è benvenuto

+0

Si chiama [* sequenza disimballaggio *] (https://docs.python.org/2/tutorial/datastructures. html # tuples-and-sequences) (vedere l'ultimo paragrafo) o semplicemente * decompressione *. – n611x007

risposta

16

Python può spacchettare sequenze naturalmente ottenuto.

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

Grazie, è così, non pensavo che fosse così facile :) – 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

meglio non utilizzare tuple come un nome di variabile.

È possibile utilizzare split(',') se si dispone di una stringa come 'sparkbrowser.com,0,http://facebook.com/sparkbrowser,Facebook', che è necessario convertire in un elenco. Comunque hai già una tupla, quindi non c'è bisogno qui.

Se sai di avere esattamente il giusto numero di componenti, è possibile decomprimere direttamente

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

python3 è potente sintassi disimballaggio. Per ottenere solo il domain e text si potrebbe usare

domain, *rest, text = the_tuple 

rest conterrà [0, 'http://facebook.com/sparkbrowser']