如果我有一个元组,例如(1,2,3,4)
,我想将 1 和 3 分配给变量 a 和 b,我显然可以说
myTuple = (1,2,3,4)
a = myTuple[0]
b = myTuple[2]
或者类似的东西
(a,_,b,_) = myTuple
有没有一种方法可以解压这些值,但忽略其中的一个或多个?
如果我有一个元组,例如(1,2,3,4)
,我想将 1 和 3 分配给变量 a 和 b,我显然可以说
myTuple = (1,2,3,4)
a = myTuple[0]
b = myTuple[2]
或者类似的东西
(a,_,b,_) = myTuple
有没有一种方法可以解压这些值,但忽略其中的一个或多个?
我个人会写:
a, _, b = myTuple
这是一个很常见的成语,因此被广泛理解。我发现语法很清楚。
我认为您的解决方案很好。如果您在分配 _ 时确实遇到问题,那么您可以定义一个索引列表并执行以下操作:
a = (1, 2, 3, 4, 5)
idxs = [0, 3, 4]
a1, b1, c1 = (a[i] for i in idxs)
请注意,您可以像这样对源元组进行切片:
a,b = some_tuple[0:2]
您可以使用 *_ 来捕获未知数量的元素,例如
first, *_, one_before_last, _ = 1,2,3,4,5,6,7,8,9
给出:
第一个 = 1
one_before_last = 8