Запрашивать у пользователя, сколько значений обновить, и обновить столько значений в словаре, используя значения из другого списка значений. - PullRequest
0 голосов
/ 23 октября 2018

Учитывая один словарь dictionary и список letter_frequency:

letter_frequency=["e", "t", "a", "o", "i", "n", "s", "r", "h", "l", "d", "c", "u", "m", "f", "p", "g", "w", "y", "b", "v", "k", "x", "j", "q","z"]
dictionary={'s': 28, 'o': 24, 'c': 20, 'w': 20, 'g': 17, 'm': 17, 't': 17, 'k': 14, 'e': 11, 'n': 10, 'f': 8, 'd': 7, 'y': 7, 'i': 6, 'l': 6, 'q': 6, 'j': 5, 'a': 2, 'r': 2, 'u': 2, 'v': 2, 'z': 1, 'b': 0, 'h': 0, 'p': 0, 'x': 0}

Попросить пользователя ввести, сколько значений мы обновили?Например:

enter how many values we have update?

Если в результате ввода ввести 5, первые 5 значений в словаре будут заменены соответствующими значениями в списке letter_frequency, т. Е. Пара ключ-значение для первых 5 измененийна
's':'e', 'o':'t','c': 'a', 'w': 'o', 'g': 'i' и остальные все пары ключ-значение остаются неизменными.Таким образом, результат должен быть:

{'s': 'e', 'o': 't', 'c': 'a', 'w': 'o', 'g': 'i', 'm': 'm', 't': 't', 'k': 'k', 'e': 'e', 'n': 'n', 'f': 'f', 'd': 'd', 'y': 'y', 'i': 'i', 'l': 'l', 'q': 'q', 'j': 'j', 'a': 'a', 'r': 'r', 'u': 'u', 'v': 'v', 'z': 'z', 'b': 'b', 'h': 'h', 'p': 'p', 'x': 'x'}

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Попробуйте этот простой код:

num= int(input("Enter how many values to update:" ))
for i,key in enumerate (dictionary.keys()):
    if i < num:
        dictionary[key] = letter_frequency[i]
    else:
        dictionary[key] = key

Проверьте и дайте мне знать, если он не соответствует вашим потребностям.

0 голосов
/ 23 октября 2018

Вы можете заархивировать элементы dictionary с помощью letter_frequency, а затем перечислить их выходные данные, чтобы вы могли использовать индексы, чтобы определить, хотите ли вы выводить обновленные значения или нет в понимании слова:

n = int(input('Enter how many values to update: '))
print({k: l if i < n else k for i, ((k, _), l) in enumerate(zip(dictionary.items(), letter_frequency))})

Пример ввода / вывода:

Enter how many values to update: 3
{'s': 'e', 'o': 't', 'c': 'a', 'w': 'w', 'g': 'g', 'm': 'm', 't': 't', 'k': 'k', 'e': 'e', 'n': 'n', 'f': 'f', 'd': 'd', 'y': 'y', 'i': 'i', 'l': 'l', 'q': 'q', 'j': 'j', 'a': 'a', 'r': 'r', 'u': 'u', 'v': 'v', 'z': 'z', 'b': 'b', 'h': 'h', 'p': 'p', 'x': 'x'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...