J'ai Tuple en Python qui ressemble à ceci:
Tuple = ('sparkbrowser.com', 0, 'http://facebook.com/sparkbrowser', 'Facebook')
et je veux le séparer afin que je puisse obtenir chaque article de Tuple indépendant afin de pouvoir faire quelque chose comme ceci:
domain = "sparkbrowser.com"
level = 0
url = "http://facebook.com/sparkbrowser"
text = "Facebook"
ou quelque chose de similaire à cela, mon besoin est d'avoir chaque article séparé. J'ai essayé avec .split(",")
sur Tuple mais j'ai une erreur qui dit que Tuple n'a pas l'option split
Toute aide ou conseil est le bienvenu
Python peut décompresser des séquences naturellement.
domain, level, url, text = ('sparkbrowser.com', 0, 'http://facebook.com/sparkbrowser', 'Facebook')
Mieux vaut ne pas utiliser Tuple
comme nom de variable.
Vous pouvez utiliser split(',')
si vous aviez une chaîne comme 'sparkbrowser.com,0,http://facebook.com/sparkbrowser,Facebook'
, que vous deviez convertir en liste. Cependant, vous avez déjà un tuple, il n’est donc pas nécessaire de le faire ici.
Si vous savez que vous avez exactement le bon nombre de composants, vous pouvez le décompresser directement.
the_Tuple = ('sparkbrowser.com', 0, 'http://facebook.com/sparkbrowser', 'Facebook')
domain, level, url, text = the_Tuple
Python3 a une syntaxe de décompression puissante. Pour obtenir uniquement la domain
et la text
, vous pouvez utiliser
domain, *rest, text = the_Tuple
rest
contiendra [0, 'http://facebook.com/sparkbrowser']
>>> domain, level, url, text = ('sparkbrowser.com', 0, 'http://facebook.com/sparkbrowser', 'Facebook')
>>> domain
'sparkbrowser.com'
>>> level
0
>>> url
'http://facebook.com/sparkbrowser'
>>> text
'Facebook'
Une alternative pour cela consiste à utiliser collections.namedtuple
. Cela facilite l'accès aux éléments des n-uplets.
Démo:
>>> from collections import namedtuple
>>> Website = namedtuple('Website', 'domain level url text')
>>> site1 = Website('sparkbrowser.com', 0, 'http://facebook.com/sparkbrowser', 'Facebook')
>>> site2 = Website('foo.com', 4, 'http://bar.com/sparkbrowser', 'Bar')
>>> site1
Website(domain='sparkbrowser.com', level=0, url='http://facebook.com/sparkbrowser', text='Facebook')
>>> site2
Website(domain='foo.com', level=4, url='http://bar.com/sparkbrowser', text='Bar')
>>> site1.domain
'sparkbrowser.com'
>>> site1.url
'http://facebook.com/sparkbrowser'
>>> site2.level
4