我有一个复杂的变量,如下所示.
test_list[[test1, test1_var1, test1,var2], [test2, test2_var1]]我编写了一个函数,用于从所需的测试中提取变量,请参阅下面.
def find_test(test_list, search_term):
for index in range(len(test_list)):
if test_list[index][0] == search_term:
return test_list[index][1:]这会返回如下内容..。
[test1_var1, test1_var2]我希望能够将变量作为单个变量返回,而不是返回列表中的元素。我该怎么做呢?如何返回变量的变量数?(有点像*args,但用于返回而不是参数)
发布于 2014-05-08 12:23:30
实际上,您可以通过使用列表来做您想做的事情:
def find_test(test_list, search_term):
for index in range(len(test_list)):
if test_list[index][0] == search_term:
return test_list[index][1:]为您提供的是析构数组语法:
foo, bar = find_text(x, y)如果要将结果作为列表获得,则可以:
l = find_text(x,y)如果只想获得一个元素:
foo, _ = find_text(x,y)
_, bar = find_text(x,y)如果您喜欢阅读,以下是一些参考资料:
发布于 2014-05-08 12:24:09
在python中,返回多个变量的对应于返回任何可迭代的,因此返回列表和“多变量”之间没有实际区别:
def f():
return 1,2
def g():
return [1,2]
a,b=f()
c,d=g()这两个函数之间唯一的区别是,f返回一个元组,而g返回一个列表--如果对返回值使用多个赋值,则这是无关紧要的。
发布于 2014-05-08 12:31:43
只需使用内置过滤器并在函数调用中展开结果:
def search(haystack, needle):
return filter(lambda x: x[0] == needle, haystack)[0][1:]
a,b = search(test_list, 'test1')请记住,如果您的结果是两个以上的项目,上述将失败。
https://stackoverflow.com/questions/23541568
复制相似问题