как я могу изменить ключи со значениями в python?

#python #python-3.x #dictionary

Вопрос:

Я хочу взять слова у пользователя таким образом, чтобы пользователь должен был ввести слово и написать перевод перед ним и с пробелом, затем написать свое предложение, если его слова есть в словаре, заменить эти слова его переводом, но я не знаю, как я могу их изменить? например: -введите количество ваших слов для перевода: -введите ваши слова: скажите «децир» — мы Ноздри-спокойной ночи, буэносночи-вы устали-сегодня ночью, эста ночь-введите ваше предложение:мы говорим вам «спокойной ночи» сегодня вечером-я хочу, чтобы вывод был таким:носотрос децир буэносночи для устала, эста ночь


 list1=[]
list2=[]
list3=[]
numbersofwords=int(input('enter numbers of you're words to translate: '))
for i in range(words):
    words=list(input('enter you're words: ').split())
    list1.append(words)
for x in range(len(list1)):
    list2.append(list1[x][1])
    list3.append(list1[x][0])    
    translator1=tuple(list2)
    translator2=tuple(list3)
translator=dict(zip(translator2, translator1))
finalsentence=input('enter you're sentence: ')
 

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

1. Я не понимаю, что ты имеешь в виду. Не могли бы вы привести пример?

2. Пожалуйста, приведите примеры входных и выходных данных, а также, пожалуйста, дайте соответствующие имена вашим переменным.

3. Глядя только на ваш вопрос: {v : k for k, v in dictionary.items()} , это изменит пару ключ-значение. Кроме того, вы можете использовать оператор условия внутри like {v : k for k, v in dictionary.items() if k == "<item-to-check>"} .

4. Как минимум, опубликованный вами код выдаст вам синтаксическую ошибку о неправильных разделителях строк — пожалуйста, проверьте, используете ' ли вы как разделитель строк, так и апостроф 🙂

Ответ №1:

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

 dictionary[new_key] = dictionary[old_key]
del dictionary[old_key]
 

или в одной строке, как это:

 dictionary[new_key] = dictionary.pop(old_key)