Split list into different variables

Question:

I have a list like this:

[('love', 'yes', 'no'), ('valentine', 'no', 'yes'), ('day', 'yes','yes')]

How do I split this list into three variables where each variable holds one tuple, i.e.

var1 = ('love', 'yes', 'no')
var2 = ('valentine', 'no', 'yes')
var3 = ('day', 'yes','yes')
Asked By: Eagle

||

Answers:

Assign to three names:

var1, var2, var3 = listobj

Demo:

>>> listobj = [('love', 'yes', 'no'), ('valentine', 'no', 'yes'), ('day', 'yes','yes')]
>>> var1, var2, var3 = listobj
>>> var1
('love', 'yes', 'no')
>>> var2
('valentine', 'no', 'yes')
>>> var3
('day', 'yes', 'yes')
Answered By: Martijn Pieters

You can also use * to unpack into different variables. It’s useful if you don’t know how many variables to list split into or if only a few variables are needed out of a list.

lst = [('love', 'yes', 'no'), ('valentine', 'no', 'yes'), ('day', 'yes','yes')]

first, *rest = lst
first  # ('love', 'yes', 'no')
rest   # [('valentine', 'no', 'yes'), ('day', 'yes', 'yes')]

# unpack the last variable
*rest, last = lst

# unpack the first two
first, second, *rest = lst

# unpack the first three
first, second, third, *rest = lst
Answered By: cottontail
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.