Python,将元组项目拆分为单个东西

时间:2013-08-22 06:15:43

标签: python split tuples

我在Python中使用了这样的元组:

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

我想分开它,所以我可以从元组中获取每个项目,所以我可以做这样的事情:

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

或类似的东西,我的需要是将每个项目分开。我在元组上尝试使用.split(","),但是我发现错误表明元组没有拆分选项

欢迎任何帮助或建议

4 个答案:

答案 0 :(得分:32)

Python可以自然地解压缩序列。

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

答案 1 :(得分:5)

最好不要将tuple用作变量名。

如果你有一个像split(',')这样的字符串,你可以使用'sparkbrowser.com,0,http://facebook.com/sparkbrowser,Facebook',你需要转换成一个列表。但是你已经有了一个元组,所以这里没有必要。

如果您知道组件数量正确,则可以直接打开包装

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

Python3具有强大的解包语法。要获得domaintext,您可以使用

domain, *rest, text = the_tuple

rest将包含[0, 'http://facebook.com/sparkbrowser']

答案 2 :(得分: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 :(得分:0)

另一种方法是使用collections.namedtuple。它使得访问元组元素变得更容易。

<强>演示:

>>> 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