Рубрики
Без рубрики

Как создать список словарей в Python?

Проблема: Скажем, у вас есть словарь {0: ‘alice’, 1: ‘BOB’}, и вы хотите создать список словарей с копиями оригинального словаря: [{0: ‘Alice’, 1: «Боб» }, {0: «Алиса», 1: «Боб»}, {0: «Алиса», 1: «Боб»}]. d = {0: ‘alice’, 1: «Боб»} Dicts = [{** D} для _ в диапазоне (3)] Печать (Dicts) # [{0: ‘Alice’, 1: … Как создать Список словарей в Python? Читать далее “

Автор оригинала: Chris.

Проблема : Скажи, у вас есть Словарь {0: «Алиса», 1: «Боб»} И вы хотите создать Список словарей с копии из оригинального словаря: [{0: 'ALICE', 1: 'BOB'}, {0: 'ALICE', 1: 'BOB'}, {0: 'ALICE', 1: 'BOB'}] Отказ

d = {0: 'Alice', 1: 'Bob'}

dicts = [{**d} for _ in range(3)]
print(dicts)
# [{0: 'Alice', 1: 'Bob'}, {0: 'Alice', 1: 'Bob'}, {0: 'Alice', 1: 'Bob'}]

Вы используете Понимание списка С «выбросом» петля Переменная подчеркивает _ Создать список из 3 элементов. Вы можете изменить значение 3, если вам нужно больше или меньше элементов в вашем Список Отказ

Выражение {** D} Распаковывает все пары (ключ, значение) из оригинального словаря D в новый словарь. Для получения дополнительной информации о операторе распаковки см. В этом руководстве по блогу Finxter.

Полученный список содержит копии исходного словаря. Если вы измените один, другие не увидят это изменение:

dicts[0][2] = 'Frank'
print(dicts)
# [{0: 'Alice', 1: 'Bob', 2: 'Frank'}, {0: 'Alice', 1: 'Bob'}, {0: 'Alice', 1: 'Bob'}]

Только первый словарь в списке содержит новое значение ключа. (2: «Фрэнк») Что доказывает, что словари не указывают на тот же объект в памяти. Это было бы так, если бы вы использовали следующий метод Копирование списка с одним словарем:

d2 = {0: 'Alice', 1: 'Bob'}

dicts2 = [d2] * 3
print(dicts2)
# [{0: 'Alice', 1: 'Bob'}, {0: 'Alice', 1: 'Bob'}, {0: 'Alice', 1: 'Bob'}]

Метод выглядит правильно, но все три словари по существу одинаковы:

dicts2[0][2] = 'Frank'
print(dicts2)
# [{0: 'Alice', 1: 'Bob', 2: 'Frank'}, {0: 'Alice', 1: 'Bob', 2: 'Frank'}, {0: 'Alice', 1: 'Bob', 2: 'Frank'}]

Если вы измените один, вы меняете все.

Вы можете увидеть этот эффект самостоятельно в следующем инструменте визуализатора памяти:

Упражнение : Измените метод правильно, чтобы изменить влияет только на первый словарь!

Статьи по теме : Как создать список Python?

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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