Питон TypeError: unhashable тип: ' list'

Я пытаюсь управлять программой, которая эффективно делает следующее:

, если [4, 5, Ложный, Ложный, Ложный, Ложный] в {}

And, on this line, I'm getting a TypeError: unhashable type 'list'

Что я делаю неправильно?

1
У меня есть структуры данных, которые смотрят что-то вроде [4,5, Ложный, Ложный, Ложный, Ложный], и я хочу найти их в рамках незаказанного списка пунктов. {} был пример (на котором мой код, оказалось, терпел неудачу в то время) такой вещи. I' m, теперь используя список вместо словаря и it' s разработка лучше.
добавлено автор River Tam, источник
Чего точно вы пытаетесь достигнуть?
добавлено автор gerrit, источник

3 ответы

Кодекс , если foo в {} проверяет, равен ли какой-либо из ключей словаря, чтобы foo .

В вашем примере, foo список. Список - unhashable тип и не может быть ключом словаря.

Если вы хотите проверить, содержится ли кто-либо вход списка в ключи словарей или в наборе, можно попробовать:

if any([x in {} for x in (4, 5, False)]).

Если вы хотите проверить, равна ли какая-либо из ваших ценностей вашему списку, можно попробовать:

, если любой ([v == [4, 5, Ложный, Ложный, Ложный, Ложный] для v в your_dict.values ()])

5
добавлено

набор держит hashable объекты, что означает, что они поддающиеся сортировке, и это позволяет эффективный метод поиска/вставки. С другой стороны, список не hashable. Вот почему ваш код совершает ошибку. Я рекомендую использовать кортеж вместо список .

if (4, 5, False, False, False, False) in {}:
  ...
1
добавлено
Это еще более эффективно написано как если Ложный: . Было бы более полезно, если бы OP сказал нам, что what's/he действительно хочет достигнуть.
добавлено автор gerrit, источник
Спасибо за то, чтобы замечать, что кортежи могут использоваться в качестве ключей словаря вместо списков.
добавлено автор gleb.pitsevich, источник

Можно сделать что-то как

if all(x in {} fили x in [4, 5, False, False, False, False]):
    ....

или

if any(x in {} fили x in [4, 5, False, False, False, False]):
    ....

в зависимости от того, что вы хотите

0
добавлено
любой (x в {} для x в [4, 5, Ложный]) прибыль , Верный . Я был удивлен этим, я предполагаю , любой рассматривает повторяемое как единое целое, и iterator верен. Таким образом, это должно быть любого ([x в {} для x в [4, 5, Ложный]]) .
добавлено автор gerrit, источник
@JanneKarila Ахают! Я использовал pylab , который действительно от импорта numpy * . numpy s любой является затенением встроенное любой .
добавлено автор gerrit, источник
@gerrit любой (x в {} для x в [4, 5, Ложный]) прибыль , Ложный для меня, и в Пайтоне 2.7 и 3.3
добавлено автор Janne Karila, источник
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

CSS — русскоговорящее сообщество
CSS — русскоговорящее сообщество
1 502 участник(ов)

Сообщество любителей CSS Возникли проблемы с CSS? – пиши сюда, обсудим и предложим самое лучшее решение Работа: @css_ru_jobs Правила: https://teletype.in/@css_ru/r1EWtQ2w7 Приходите в наши чаты @javascript_ru и @frontend_ru Флуд: @css_flood

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
1 080 участник(ов)

Основной канал: @tpverstak Обратная связь: @annblok Все ссылки на соц.сети проекта: http://taplink.cc/tpverstak ПРАВИЛА ЧАТА — https://teletype.in/@annblok/BygPgC3E7

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community

Веб-Технологи: UI/UX, Вёрстка, Фронтенд
Веб-Технологи: UI/UX, Вёрстка, Фронтенд
167 участник(ов)

Всё про веб-дизайн и вёрстку. А также: HTML, CSS, флекс и бутстрапы, шаблонизаторы, препроцессоры, методологии, аглифаеры, улучшаторы и обфускаторы. Обсуждаем темы юзабилити, устраиваем А/В тесты лендингов, и проводим аудит.

DTP :: @DTPublish
DTP :: @DTPublish
147 участник(ов)

Обсуждаемые темы: полиграфия, препресс, верстка, дизайн, иллюстрации, скрипты, плагины. Канал - @DTPublishing

css_jobs
css_jobs
26 участник(ов)

Чат для вопросов по css и html: @css_ru Флуд: @css_flood Канал с вакансиями и резюме: @css_jobs_feed

css_флуд
css_флуд
10 участник(ов)