PYTHON_TESTIT Telegram 1188
🧠 Хитрая задача по Python — что не так с set и списками?

Задача:
Вы хотите получить уникальные элементы из вложенных списков:


items = [[1, 2], [3, 4], [1, 2]]

unique = set(items)
print(unique)


Что произойдёт?

Варианты ответа:
1. Выведется: {[1, 2], [3, 4]}
2. Выведется: [[1, 2], [3, 4]]
3. Произойдёт ошибка
4. Все вложенные списки преобразуются в кортежи и выведутся без дубликатов

Правильный ответ: 3. Произойдёт ошибка

💥 TypeError: unhashable type: 'list'

🔍 Разбор

В Python элементы set должны быть хешируемыми. А списки — изменяемый тип данных, следовательно, не хешируемы.

То есть:


set([[1, 2], [3, 4]])
# вызовет ошибку


Как сделать правильно?

Если вы хотите получить уникальные вложенные списки, можно преобразовать их в кортежи:


items = [[1, 2], [3, 4], [1, 2]]
unique = set(tuple(x) for x in items)
print(unique) # {(1, 2), (3, 4)}


А если хочется вернуть результат обратно в список списков:


result = [list(x) for x in unique]
print(result) # [[1, 2], [3, 4]] (порядок не гарантирован)


⚠️ Вывод

- list нельзя положить в set, dict как ключ — они unhashable
- Используйте tuple для таких случаев
- Уникальность вложенных списков — частый источник багов при работе с JSON, DataFrame, API

📌 Такие мелочи легко упустить, но они выстреливают в самых неожиданных местах. Подписывайся, чтобы не наступать на грабли в одиночку.



tgoop.com/python_testit/1188
Create:
Last Update:

🧠 Хитрая задача по Python — что не так с set и списками?

Задача:
Вы хотите получить уникальные элементы из вложенных списков:


items = [[1, 2], [3, 4], [1, 2]]

unique = set(items)
print(unique)


Что произойдёт?

Варианты ответа:
1. Выведется: {[1, 2], [3, 4]}
2. Выведется: [[1, 2], [3, 4]]
3. Произойдёт ошибка
4. Все вложенные списки преобразуются в кортежи и выведутся без дубликатов

Правильный ответ: 3. Произойдёт ошибка

💥 TypeError: unhashable type: 'list'

🔍 Разбор

В Python элементы set должны быть хешируемыми. А списки — изменяемый тип данных, следовательно, не хешируемы.

То есть:


set([[1, 2], [3, 4]])
# вызовет ошибку


Как сделать правильно?

Если вы хотите получить уникальные вложенные списки, можно преобразовать их в кортежи:


items = [[1, 2], [3, 4], [1, 2]]
unique = set(tuple(x) for x in items)
print(unique) # {(1, 2), (3, 4)}


А если хочется вернуть результат обратно в список списков:


result = [list(x) for x in unique]
print(result) # [[1, 2], [3, 4]] (порядок не гарантирован)


⚠️ Вывод

- list нельзя положить в set, dict как ключ — они unhashable
- Используйте tuple для таких случаев
- Уникальность вложенных списков — частый источник багов при работе с JSON, DataFrame, API

📌 Такие мелочи легко упустить, но они выстреливают в самых неожиданных местах. Подписывайся, чтобы не наступать на грабли в одиночку.

BY Python tests


Share with your friend now:
tgoop.com/python_testit/1188

View MORE
Open in Telegram


Telegram News

Date: |

"Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. In the next window, choose the type of your channel. If you want your channel to be public, you need to develop a link for it. In the screenshot below, it’s ”/catmarketing.” If your selected link is unavailable, you’ll need to suggest another option. How to Create a Private or Public Channel on Telegram? When choosing the right name for your Telegram channel, use the language of your target audience. The name must sum up the essence of your channel in 1-3 words. If you’re planning to expand your Telegram audience, it makes sense to incorporate keywords into your name. Telegram is a leading cloud-based instant messages platform. It became popular in recent years for its privacy, speed, voice and video quality, and other unmatched features over its main competitor Whatsapp.
from us


Telegram Python tests
FROM American