如果我有这样一个元组的(1,2,3,4)
,我要指派1和3变量a和b,我可以明明说忽略一个Python元组的一部分
myTuple = (1,2,3)
a = my_tuple[0]
b = myTuple[2]
或者类似的东西
(a,_,b,_) = myTuple
有没有办法可以解压值,但忽略它们中的一个或多个?
如果我有这样一个元组的(1,2,3,4)
,我要指派1和3变量a和b,我可以明明说忽略一个Python元组的一部分
myTuple = (1,2,3)
a = my_tuple[0]
b = myTuple[2]
或者类似的东西
(a,_,b,_) = myTuple
有没有办法可以解压值,但忽略它们中的一个或多个?
您的解决方案在我看来很好。如果确实存在分配_的问题,那么您可以定义索引列表,然后执行以下操作:
a = (1, 2, 3, 4, 5)
idxs = [0, 3, 4]
a1, b1, c1 = (a[i] for i in idxs)
我个人会写:
a, _, b = myTuple
这是一个相当常见的成语,所以它的广泛理解。我觉得语法清晰。
我想说明的是,在python解释器中,'_'被分配给最后一个表达式的结果(所以如果你输入''hi''并敲入enter,然后'_ is'hi''),直到你做了一些事情像这样你为它赋值,那么它将永远不会像以前那样工作。 – 2rs2ts 2015-10-13 17:47:41
'a,_,b = myTuple'是一个非常常见的用法。说实话,我并没有看到太多错误。 – NPE 2012-03-02 11:35:27
“_ == 2”有什么问题?在代码中没有人会使用'_'。 – 2012-03-02 11:36:33
如果我想忽略元组的两部分,该怎么办?我会更新 – 2012-03-02 11:41:32