gpt4 book ai didi

Python:仅使用列表中尚未存在的值更新 dict[key] 值列表

转载 作者:行者123 更新时间:2023-12-04 15:28:20 25 4
gpt4 key购买 nike

我正在尝试根据以下规则将 test_dict2 添加/附加到 test_dict:

  1. 如果 test_dict2 字典键已经存在于 test_dict 中,更新 test_dict[key] 仅使用来自 test_dict2[key 的新值]
  2. 如果test_dict 中不存在字典键,则添加键和值。

例子:

test_dict = {'s': [1, 2], 't': 2}
test_dict2 = {'s': [1, 2, 3, 'yoyoyo'], 't': 2, 'u': [3, 4]}

在我预期的更新之后,test_dict 应该如下所示:

test_dict = {'s': [1, 2, 3, 'yoyoyo'], 't': [2], 'u': [3, 4]}

我有工作代码,但它看起来效率很低:

def convert_values_to_list(value):
if isinstance(value, list) == False:
value = [value]
return value

for key, values in test_dict2.items():
values = convert_values_to_list(values)
print(key)
print(values)
if key not in test_dict:
test_dict[key] = values
else:
test_dict[key] = convert_values_to_list(test_dict[key])
for value in values:
if value not in test_dict[key]:
test_dict[key].append(value)

最佳答案

试试这个。

def unpack_values(data):
for datum in data:
if isinstance(datum, list):
for x in datum:
yield x
else:
yield datum

all_keys=set(test_dict.keys())
all_keys.update(test_dict2.keys())

for key in all_keys:
values=[test_dict.get(key,[]), test_dict2.get(key,[])]
test_dict[key]=list(set(unpack_values(values)))

关于Python:仅使用列表中尚未存在的值更新 dict[key] 值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61803638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com