簡體   English   中英

itertools無法識別列表

[英]List is not being recognized by itertools

import itertools

#p = input()

def fac(n):
    factorlist = []
    k = 1
    while k < n+1:
        if n % k == 0:
            factorlist.append(k)
            k+=1
            continue
        else:
            k+=1
            continue
    print factorlist
    return factorlist

for a, b in itertools.combinations(factorlist,2):
    if gcd(a,b) == 1:
        print a,b
        continue
    else:
        continue

n=0
while n<=100:
fac(n)
n+=1

在上面的代碼中,當我嘗試運行itertools.combination時,該錯誤告訴我,即使我在函數定義中將其返回並可以打印,也未定義factorlist。

首先,您需要調用該函數並將其值輸入到factorlist變量中。 它存在於函數fac的本地范圍內,但不存在於全局范圍內。 要解決此問題,請首先運行fac並將返回值分配給主作用域的變量factorlist 然后,您將可以運行for循環而不會出錯:

factorlist = fac(some_value)
for a, b in itertools.combinations(factorlist,2):
    do_things

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM