#python
Вопрос:
Предположим, словарь, подобный
d1 = {
'a b':1,
'c-d':2,
'Ef':3
}
Я хочу запустить функцию, которая переименовывает все ключи в соответствии с некоторыми правилами, например, строчными буквами и изменением пробелов и — на _. Чтобы получить результат:
d2 = {
'a_b':1,
'c_d':2,
'ef':3
}
Разница между этим вопросом и другими аналогичными вопросами на этом сайте о переименовании ключей словаря заключается в том, что здесь мы не знаем столбцы заранее. Поэтому мы хотим запустить функцию переименования для всех ключей (чтобы нормализовать их или что-то в этом роде).
Комментарии:
1. просто зацикливайтесь на каждом ключе/значении в новом дикте
Ответ №1:
Объявите такую функцию, затем используйте понимание словаря (поиск «понимания диктанта»), чтобы выполнить цикл над элементами диктанта и вызвать этот преобразователь.
def transform_key(key):
return key.lower().replace(" ", "_").replace("-", "_")
d1 = {
'a b':1,
'c-d':2,
'Ef':3
}
d2 = {transform_key(key): value for (key, value) in d1.items()}
print(d2)
выходы
{'a_b': 1, 'c_d': 2, 'ef': 3}