Я хотел создать список словарей в python. Обычный способ создания списка работал для меня. То есть mylist = [{1:1},{2:2}]
Python - Создание списка словарей
Однако, когда я попытался создать его, используя понимание над range()
function, mylist = [a:a for a in range(10)]
Я получаю синтаксическую ошибку.
Но, к моему удивлению, если я построю набор таким же образом, он будет работать так, как ожидалось. myset = {a:a for a in range(10)}
Могу ли я узнать, почему это так? Я использую Python3
Похоже, это то, что мы называем хороший вопрос; он явно нуждается в большем количестве средств для недостающих исследовательских усилий и использования неправильных условий. – vaultah
Ваш оператор Python 'myset = {a: a для a в диапазоне (10)}' не создает 'set', а' dict'. У вас есть значения в нем, которые вы можете получить путем индексирования ключами, например, 'myset [5]' возвращает значение '5', в то время как индексирование структуры данных' set' вызывает 'TypeError', потому что _ Объект «set» не поддерживает индексирование «_. Если вы хотите иметь _set-понимание в своем коде, вам нужно написать, проще говоря, 'myset = {a для a в диапазоне (10)}'. – gboffi