У меня есть эта задача, чтобы превратить дату (которая является значением «дата рождения» внутри словаря) в кортеж

#python

#питон

Вопрос:

 my_dict = {  "first_name": "Michael",  "last_name": "Mike",  "birthdate": "29.06.1980", # ***  "hobbies": ["Sing", "Compose", "Act"] }  

"birthdate" это ключ, а дата-значение. Мне нужно привести дату к кортежу внутри словаря, чтобы это было так:

 "birth_date": (29,06,1980)  

Комментарии:

1. Обратите внимание, что на самом деле вы не можете иметь 06 кортеж, если это не строка; это был восьмеричный литерал в Python 2.x (но даже тогда вы увидите десятичную форму, когда распечатаете ее), и это была синтаксическая ошибка с Python 3.0.

Ответ №1:

Вы можете получить доступ к значению, соответствующему 'birthdate' ключу , затем split включить эту строку '.' , а затем преобразовать каждое значение int в выражение генератора

 gt;gt;gt; tuple(int(i) for i in my_dict['birthdate'].split('.')) (29, 6, 1980)  

Если вы хотите заменить значение в dict, вы можете присвоить это значение исходному ключу.

 gt;gt;gt; my_dict['birthdate'] = tuple(int(i) for i in my_dict['birthdate'].split('.')) gt;gt;gt; my_dict {'first_name': 'Michael', 'last_name': 'Mike', 'birthdate': (29, 6, 1980), 'hobbies': ['Sing', 'Compose', 'Act']}