为什么我的变量只在函数之外返回一个值?



抱歉,如果这很明显,但我的函数创建了一个列表。打印列表的变量,在函数内部返回所有列表。但是在函数外部打印全局变量只返回第一个值?以下是代码的两个不同版本:

在公式内打印工作:

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的幂集

但是,即使我打印相同的全局变量,此代码也只返回一个值:

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)

我猜它在一个值之后终止函数,但我不知道如何改变这种行为。感谢您的帮助!对不起,我是菜鸟。

为了确认,在 for 循环之后追加到列表中会创建所有项目的列表。函数中的 print 命令只是在 for 循环发生时打印它们,但变量中只保存一个项目。

相关内容

  • 没有找到相关文章

最新更新