tuple - 通過在Python中切片列表來分配值的緊湊方式




python tuple slice (4)

假設你的指數既不動態也不太大,我會選擇

bar = ['a','b','c','x','y','z']
v1, _, _, v2, v3, _ = bar

我有以下清單

bar = ['a','b','c','x','y','z']

我想要做的是將第1,第4和第5個值分配給v1,v2,v3 ,是否有比這更簡潔的方法:

v1, v2, v3 = [bar[0], bar[3], bar[4]]

因為在Perl中你可以這樣做:

my($v1, $v2, $v3) = @bar[0,3,4];


您可以使用operator.itemgetter

>>> from operator import itemgetter
>>> bar = ['a','b','c','x','y','z']
>>> itemgetter(0, 3, 4)(bar)
('a', 'x', 'y')

因此,對於您的示例,您將執行以下操作:

>>> v1, v2, v3 = itemgetter(0, 3, 4)(bar)

既然你想要緊湊,你可以做如下的事情:

indices = (0,3,4)
v1, v2, v3 = [bar[i] for i in indices]

>>> print v1,v2,v3     #or print(v1,v2,v3) for python 3.x
a x y




slice