询问用户使用另一个值列表中的值来更新和更新词典中的多少个值

时间:2018-10-23 05:47:12

标签: python python-3.x list dictionary

给出一本字典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 :(得分:0)

您可以使用username压缩str.isRegexMatch(".*\\/" + username + "$"); 项目,然后枚举其输出,以便可以使用索引来确定是否要输出更新的值:dict理解:

dictionary

示例输入/输出:

letter_frequency

答案 1 :(得分:0)

尝试以下简单代码:

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

检查并告诉我是否不适合您。