用相似的键但值不同的字典/列表更新并在python中显示为报告

问题描述

我需要一个更新功能来循环并检查用于加密文件的密钥。

regex.search(string_name)

解决方法

这部分没用

编辑:我在此示例中添加了encrypt_key_value_dict.update(...)

        encrypt_key_value_dict.update(...)

        while True:
            k = encrypt_key_value_dict.keys()
            v = encrypt_key_value_dict.values()
            if i in encrypt_key_value_dict:
                encrypt_key_value_dict[k].append(v)
            else:
                encrypt_key_value_dict[k] = [v]

            print(encrypt_key_value_dict)

您不需要while True循环即可添加单个元素。而且您在kv

中使用了错误的值

您需要

k = key_file.name
v = encrypt_file

encrypt_key_value_dict = dict()

k = 'key1'         # key_file.name
v = 'encryptfile1' # encrypt_file

# first method
if k in encrypt_key_value_dict:
    encrypt_key_value_dict[k].append(v)
else:
    encrypt_key_value_dict[k] = [v]

k = 'key1'         # key_file.name
v = 'encryptfile2' # encrypt_file

# second method
if k not in encrypt_key_value_dict:
    encrypt_key_value_dict[k] = []
encrypt_key_value_dict[k].append(v)

print(encrypt_key_value_dict)

如果您使用collections.defaultdict(list),那么它甚至会更简单

import collections

encrypt_key_value_dict = collections.defaultdict(list)

k = 'key1'         # key_file.name
v = 'encryptfile1' # encrypt_file

encrypt_key_value_dict[k].append(v)

k = 'key1'         # key_file.name
v = 'encryptfile2' # encrypt_file

encrypt_key_value_dict[k].append(v)

print(dict(encrypt_key_value_dict))