Резюме : Чтобы преобразовать словарь в список кортежей, используйте Dict.items ()
Способ получения уникального из (ключ, значение)
Пары и преобразуйте его в список, используя список(...)
Конструктор: Список (Dict.items ())
Отказ Чтобы изменить пару каждого ключа, прежде чем хранить его в списке, вы можете использовать оператор понимания списка [(K ', V') для K, V в Dict.items ()]
замена К '
и V '
с вашими конкретными модификациями.
В моих кодовых проектах я часто находим, что выбор правильной структуры данных является важной предпосылкой для записи чистого и эффективного кода. В этой статье вы узнаете самый питонический путь к Конвертировать Словарь к Список Отказ
Проблема : Учитывая словарь Ключ: значение
Пары. Преобразуйте его в список (ключ, значение)
кортежи.
Пример : Учитывая следующий словарь.
d = {'Alice': 19, 'Bob': 23, 'Carl': 47}
Вы хотите преобразовать его в список (ключ, значение)
кортежи:
[('Alice', 19), ('Bob', 23), ('Carl', 47)]
Вы можете получить быстрый обзор методов, изученных в этой статье следующей:
Упражнение : Измените структуру данных словаря элементов. Это все еще работает?
Давайте погрузимся в методы!
Способ 1: Список кортежей с DICK.items () + списком ()
Первый подход использует метод словаря Dict.items ()
Чтобы получить передачу от (ключ, значение)
кортежи. Единственное, что осталось – это преобразовать его в список, используя встроенный Список ()
конструктор.
d = {'Alice': 19, 'Bob': 23, 'Carl': 47} # Method 1 t = list(d.items()) print(t) # [('Alice', 19), ('Bob', 23), ('Carl', 47)]
Переменная T
теперь проводит список (ключ, значение)
кортежи. Обратите внимание, что во многих случаях нет необходимости фактически преобразовывать его в список, и, таким образом, создает структуру данных в памяти. Например, если вы хотите зайти за собой все (ключ, значение)
Пары в словаре, вы можете сделать это без конвертации:
for k,v in d.items(): s = str(k) + '->' + str(v) print(s) ''' Alice->19 Bob->23 Carl->47 '''
Используя Предметы ()
Метод в объекте словаря является самым питонным способом, если все, что вы хотите, это получить список (ключ, значение)
Пары. Тем не менее, что, если вы хотите получить список клавиш – игнорируя значения на данный момент?
Способ 2: Список ключей с Dict.key ()
Чтобы получить список ключевых значений, используйте Dict.keys ()
Способ и пройти в результате результирующего в a Список ()
конструктор.
d = {'Alice': 19, 'Bob': 23, 'Carl': 47} # Method 2 t = list(d.keys()) print(t) # ['Alice', 'Bob', 'Carl']
Точно так же вы можете получить список значений.
Способ 3: Список значений с DICK.Values ()
Чтобы получить список ключевых значений, используйте Dict.values ()
Способ и пройти в результате результирующего в a Список ()
конструктор.
d = {'Alice': 19, 'Bob': 23, 'Carl': 47} # Method 3 t = list(d.values()) print(t) # [19, 23, 47]
Но что, если вы хотите изменить каждый (ключ, значение)
кортеж? Давайте изучим некоторые альтернативы.
Способ 4: Понимание списка с Dict.items ()
Понимание списка является компактным способом создания списков. Простая формула – [Выражение + контекст]
Отказ
- Выражение: Что делать с каждым элементом списка?
- Контекст: Какие элементы для выбора? Контекст состоит из произвольного количества
для
иЕсли
заявления.
Вы можете использовать список пометков для изменения каждого (ключ, значение)
Пара из исходного словаря, прежде чем хранить результат в новом списке.
d = {'Alice': 19, 'Bob': 23, 'Carl': 47} # Method 4 t = [(k[:3], v-1) for k, v in d.items()] print(t) # [('Ali', 18), ('Bob', 22), ('Car', 46)]
Вы преобразуете каждую клавишу в строку с тремя символами, используя Slicing и уменьшите каждое значение на один.
Способ 5: ZIP () с Dict.keys () и Dict.values ()
Просто для понимания, вы можете (теоретически) использовать функцию ZIP () для создания списка кортежей:
d = {'Alice': 19, 'Bob': 23, 'Carl': 47} # Method 5 t = list(zip(d.keys(), d.values())) print(t) # [('Alice', 19), ('Bob', 23), ('Carl', 47)]
Однако нет никакой пользы по сравнению с использованием Dict.items ()
метод. Тем не менее, я хотел показать вам это, потому что zip ()
Функция часто используется в Python, и вам важно понять его.
Метод 6: Базовый цикл
Последний метод использует базовый для цикла, – ни худший способ сделать это! Конечно, Python Pro использовал бы самые пифитонные способы, которые я показал вам выше. Но использование базового для цикла иногда превосходит – особенно если вы хотите иметь возможность настроить код позже (например, увеличить сложность тела петли).
d = {'Alice': 19, 'Bob': 23, 'Carl': 47} # Method 6 t = [] for k, v in d.items(): t.append((k,v)) print(t) # [('Alice', 19), ('Bob', 23), ('Carl', 47)]
Однострочный оператор для обработки цикла или списка не является наиболее важным способом преобразования словаря в список Python, если вы хотите изменить каждый новый элемент списка, используя более сложное выражение тела. В этом случае простой для цикла – ваш лучший выбор!
Статьи по Теме:
- Список, чтобы определить конверсию
- Как преобразовать список списка в словаре в Python?
- Ultimate Guide к словарям
- Окончательное руководство по спискам
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники To help students reach higher levels of Python success, he founded the programming education website Finxter.com . He’s author of the popular programming book Python One-Liners (NoStarch 2020), coauthor of the Coffee Break Python series of self-published books, computer science enthusiast, freelancer
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.