Я пытаюсь получить список списка кортежей: что-то вроде [ [(1,0),(2,0),(3,0)],[(1,1),(2,1),(3,1)....]]
Я использовал это утверждение
set([(a,b)for a in range(3)]for b in range(3))
Но это дает мне ошибку
TypeError: unhashable type: 'list'
У меня есть 2 вопроса для гуру Python:
a) Когда я смотрю на определение Python Hashable -
"Объект hashable, если он имеет значение хэша, которое никогда не изменяется в течение его жизненного цикла (ему нужен метод хеша())
когда я использовал функцию dir над выражением выше
dir([(a,b)for a in range(3)]for b in range(3))
кажется, что есть __hash__
. Итак, почему я получаю ошибку?
Мне удалось получить [[(0, 0), (1, 0), (2, 0)], [(0, 1), (1, 1), (2, 1)], [(0, 2), (1, 2), (2, 2)]]
используя команду списка:
list(list((a,b) for a in range(3)) for bin range(3))
b) и установите оба параметра Iterable в качестве параметра. Почему один работает (список), а другой не установлен (?)?