Использование метода словарей update() и передача итераций в качестве аргументов метода дает неожиданные результаты [дубPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование метода словарей update() и передача итераций в качестве аргументов метода дает неожиданные результаты [дуб

Сообщение Anonymous »

Сейчас я изучаю словари в Python (v3.13.0) и не понимаю, почему метод update() отображает результат, отличный от ожидаемого. Ниже я подробно объясню, используя код, который использовал для тестирования.
КОД 1:

Код: Выделить всё

car = {'brand': 'Ford', 'model': 'Mustang', 'year': 1964}
car_list = [{'gearbox': 'manual', 'fuel type': 'Diesel'}]
car_tuple = ({'owner': None, 'color': 'white'})

car.update(car_list)
print(car)
# Output: {'brand': 'Ford', 'model': 'Mustang', 'year': 1964, 'gearbox': 'fuel type'}

car.update(car_tuple)
print(car)
# Output: {'brand': 'Ford', 'model': 'Mustang', 'year': 1964, 'gearbox': 'fuel type', 'owner': None, 'color': 'white'}
Как видно выше, пары ключ-значение из кортежа были добавлены правильно, но список просто добавил два ключа в пару ключ-значение.
Затем я попытался объединить словари car_list и car_tuple в один кортеж и попытаться обновить с его помощью словарь car.
КОД 2:

Код: Выделить всё

car = {'brand': 'Ford', 'model': 'Mustang', 'year': 1964}
car_tuple = ({'owner': None, 'color': 'white'}, {'gearbox': 'manual', 'fuel type': 'Diesel'})

car.update(car_tuple)
print(car)
# Output: {'brand': 'Ford', 'model': 'Mustang', 'year': 1964, 'owner': 'color', 'gearbox': 'fuel type'}
На этот раз кортеж вел себя так же, как список из CODE 1, добавляя ключи в виде пар «ключ-значение».
Может ли кто-нибудь объяснить такое поведение? , пожалуйста? Я немного запутался.
NB. Из документации Python выяснилось, что метод update() также принимает в качестве аргументов «итерацию пар ключ/значение ( как кортежи или другие итерации длиной два)".

Подробнее здесь: https://stackoverflow.com/questions/792 ... rguments-t
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»