-1
これは明らかですが、私の関数がリストを作成する場合は謝罪してください。関数内にリストの変数を表示すると、すべてのリストが返されます。しかし、関数の外部にグローバル変数を出力すると、最初の値だけが返されます。ここでは、コードの2つの異なるバージョンがあります:しかし、このコードは私が印刷していていても、一つの値だけを返すなぜ私の変数は関数の外で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
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)
私はそれが一つの値の後に機能を停止されますが、私はこの動作を変更する方法がわからない推測しています。ご協力ありがとうございました!申し訳ありませんが、私はnoob。
あなたは***リスト全体を 'items'で置き換えています。あなたはリストに追加されていません。そこから、単に各ループの反復でその1項目の「リスト」を印刷するのか、最後に1回印刷するのかという違いがあります。 – deceze
私は理解します。だから、私は基本的にはpowerset_list = []とpowerset_list.append(items)というpowersetリストに追加するだけで解決できます。 –