Python, split tuple items to single stuff

后端 未结 4 418
囚心锁ツ
囚心锁ツ 2020-12-16 12:32

I have tuple in Python that looks like this:

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

and I wa

相关标签:
4条回答
  • 2020-12-16 12:51
    >>> domain, level, url, text = ('sparkbrowser.com', 0, 'http://facebook.com/sparkbrowser', 'Facebook')
    >>> domain
    'sparkbrowser.com'
    >>> level
    0
    >>> url
    'http://facebook.com/sparkbrowser'
    >>> text
    'Facebook'
    
    0 讨论(0)
  • 2020-12-16 12:57

    Best not to use tuple as a variable name.

    You might use split(',') if you had a string like 'sparkbrowser.com,0,http://facebook.com/sparkbrowser,Facebook', that you needed to convert to a list. However you already have a tuple, so there is no need here.

    If you know you have exactly the right number of components, you can unpack it directly

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

    Python3 has powerful unpacking syntax. To get just the domain and the text you could use

    domain, *rest, text = the_tuple
    

    rest will contain [0, 'http://facebook.com/sparkbrowser']

    0 讨论(0)
  • 2020-12-16 12:58

    An alternative for this, is to use collections.namedtuple. It makes accessing the elements of tuples easier.

    Demo:

    >>> 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
    
    0 讨论(0)
  • 2020-12-16 13:01

    Python can unpack sequences naturally.

    domain, level, url, text = ('sparkbrowser.com', 0, 'http://facebook.com/sparkbrowser', 'Facebook')
    
    0 讨论(0)
提交回复
热议问题