从python中的返回函数(元组)获取2个参数

时间:2019-05-26 18:55:08

标签: python parameters tuples

我很难从函数中以元组的形式返回两个参数:

>>> ir7(41,7)

(966, 1023, 571, 396, 105, 2, 3)

如果要获取指定的元组,请使用以下命令:

 >>> ir7(41,7)[0]

966

但是如果我想从元组中获取第一,第三和第四元素怎么办?正确的语法是什么?像这样:

a,b,c= ir7(41,7)[1][3][4]

5 个答案:

答案 0 :(得分:1)

仅调用一次该方法即可使其更有效。在那之后,这只是元组分配的问题。

v = ir7(41,7)
a, b, c= v[1], v[3], v[4]

答案 1 :(得分:1)

当您执行write.FileList(FileList, encoding = .rqda$encoding, con = .rqda$qdacon) addFilesFromDir("C:\\output", pattern = "*.txt$") 时,您实际上试图获取对象(基本上是4维列表)的1:st元素的3:rd元素的4:th元素。相反,您应该分别获取它们:

ir7(41,7)[1][3][4]

或者我可以这样:

# Get all the values initially in a separate variable
values = ir7(41,7)
a, b, c = values[1], values[3], values[4]

通过使用占位符变量_, a, _ b, c = ir7(41,7) 省略不需要的索引

答案 2 :(得分:1)

有一个约定,将_用作您实际上不想使用的变量的名称。使用此功能,您可以执行以下操作:

_, a, _, b, c = ir7(41, 7)

或者,您可以执行以下操作:

value = ir7(41, 7)
a, b, c = value[1], value[3], value[4]

如果要排除的项目数量很大,那么您肯定需要第二个选项。

答案 3 :(得分:1)

您可以解压缩返回值:

_, a, _, b, c, _, _ = ir(41, 7)

_表示此处分配的值并不重要。

答案 4 :(得分:1)

您还可以引入切片以在分配值之前缩小结果范围:

std::vector<std::vector<int>> v{100, std::vector<int>{100}};

更好的是,您可以使用a, _, b, c = ir7(41, 7)[1:4]

operator.itemgetter