2014-01-27 6 views
0

В настоящее время я пишу большой алгоритм решения sudoku solver, и я столкнулся с какой-то странной проблемой ... где-то глубоко в моем коде, у меня есть это выражение «if», чтобы проверить тип данной переменной. Я хочу, чтобы он вводил if-statement, если это список.Проблемы с типом() в алгоритме sudoku solver

Когда я был такой код:

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

Он не входил в заявление (у меня есть печать(), что делает меня уверен, что ... Но с этим:

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

Он вводит код ... «возможности» - это еще одна переменная, назначенная ранее в программе, которая ВСЕГДА содержит список. У меня также были инструкции print() перед «if-statement», чтобы сообщить мне текущий тип ячейка, с:

print(type(cell)) 

и некоторые печатные, как и ожидалось, список "< класс "">"

В чем проблема то? Если вы считаете, что это необходимо, я могу добавить здесь больше кода. Я просто подумал, что лучше не делать, так как это действительно большой.

ответ

2

Нацепит, что, как

if type(cell) == list: 

еще лучших

if isinstance(cell, list): 

последних работ, даже если клетка некоторых производного типа.

1

if type(cell) == list:

Обратите внимание, никаких кавычек вокруг списка. list - это встроенная переменная, относящаяся к типу списка.

+0

Спасибо;) Поскольку он напечатал его как «список», я думал, что он должен их принять ... – RGS