我有一个包含 200e3 个整数键的字典,每个键都有一个或两个值(字符串)。
我需要编写逻辑来检查每个键是否具有多个值,如果有,则添加到列表中。
my_dict = defaultdict(list)
my_dict = {1: ['789456', '456123'], 2: '123456', 3: '987654'}
final = []
这就是我最初的解决方案。这适用于两个值,但当只有一个值存在时返回字符长度。
for key, value in my_dict.items():
if len(value) > 1:
final.append(key)
else:
continue
我尝试枚举,但它只返回范围。
for x in enumerate(my_dict.items()):
print(x)
我想出了这个解决方案,但我不确定使用 defaultdict(list)
是否会出现任何问题。或者如果有更大的问题我可能看不到。
for key, value in my_dict.items():
if isinstance(value, list):
final.append(key)
else:
continue
最佳答案
请尝试这个:
final = [k for k,v in my_dict.items() if type(v) == list and len(v) > 1]
或在您的代码中:
for key, value in my_dict.items():
# only this additional condition is present before `and`
if type(value) == list and len(value) > 1:
final.append(key)
这里,'34534'
和 ['534', '456465']
都是可迭代对象,并且 len()
函数适用于两者因此,我们需要检查值的类型,并且仅在 list
的情况下检查长度。
关于python - 计算每个字典键中值的数量(包括一个值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67407851/