如果这很明显,请道歉,但我的功能会创建一个列表。打印列表的变量,在函数内部返回所有列表。但是在函数外打印全局变量只返回第一个值?以下是代码的两个不同版本:
在公式内打印:
from itertools import chain, combinations
noise_1 = "somerandomvalue"
min_var_length = 8
max_var_length = 16
#creates a powerset of the input value, taking into account min and max lengths
def powerset(iterable):
global powerset_list
s = list(iterable)
x = list(chain.from_iterable(combinations(s, r) for r in range(len(s)+1)))
x_string = list(x)
for items in x_string:
if len(items) > min_var_length:
powerset_list = items
print(powerset_list)
powerset(noise_1)
并返回noise_1的powerset
但是,即使我打印相同的全局变量,此代码也只返回一个值:
from itertools import chain, combinations
noise_1 = "somerandomvalue"
min_var_length = 8
max_var_length = 16
#creates a powerset of the input value, taking into account min and max lengths
def powerset(iterable):
global powerset_list
s = list(iterable)
x = list(chain.from_iterable(combinations(s, r) for r in range(len(s)+1)))
x_string = list(x)
for items in x_string:
if len(items) > min_var_length:
powerset_list = items
powerset(noise_1)
print(powerset_list)
我猜测它会在一个值之后终止该功能,但我不知道如何改变这种行为。谢谢您的帮助!对不起我是菜鸟。
答案 0 :(得分:0)
因此,要确认,在for循环后附加到列表会创建所有项目的列表。函数中的print命令只在它们出现时打印for循环,但只有一个项目保存在变量中。