我很难从函数中以元组的形式返回两个参数:
>>> ir7(41,7)
(966, 1023, 571, 396, 105, 2, 3)
如果要获取指定的元组,请使用以下命令:
>>> ir7(41,7)[0]
966
但是如果我想从元组中获取第一,第三和第四元素怎么办?正确的语法是什么?像这样:
a,b,c= ir7(41,7)[1][3][4]
答案 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