2014-01-27 26 views
0

我目前正在編寫一個大數獨求解算法,而且我遇到了一個奇怪的問題......在我的代碼深處,我有這個'if'語句來檢查給定變量的類型。如果它是一個列表,我希望它輸入if語句。在數獨求解算法中遇到類型()的問題

當我有這樣的代碼:

if type(cell) == "list": 
    # some code... 

它不會進入聲明(我有一個打印(),使我確信...... 但與此:

if type(cell) == type(possibilities): 
    # some code... 

它確實輸入了代碼......'可能性'是程序中早些時候指定的另一個變量,總是一個列表 我還在'if-statement'之前有了print()語句來告訴我當前類型的細胞,與:

print(type(cell)) 

和一些印刷,符合市場預期, 「<類 」清單「>」

的問題是什麼呢?如果您認爲有必要,我可以在此處添加更多代碼。我只是覺得最好不要因爲它真的很大。

回答

2

您修復作爲

if type(cell) == list: 
更好

if isinstance(cell, list): 

後者的作品

即使細胞是一些派生型。

1

if type(cell) == list:

通知,圍繞列表中沒有報價。 list是一個引用列表類型的內置變量。

+0

謝謝;)由於它打印它像「列表」,我認爲它應該採取... ... – RGS