Python 计算每个字典键中的值数,包括一个值
我有一个带有200e3个整数键的dict,每个键有一个或两个值(字符串) 我需要编写逻辑来检查每个键是否有多个值,如果有,则添加到列表中Python 计算每个字典键中的值数,包括一个值,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我有一个带有200e3个整数键的dict,每个键有一个或两个值(字符串) 我需要编写逻辑来检查每个键是否有多个值,如果有,则添加到列表中 my_dict = defaultdict(list) my_dict = {1: ['789456', '456123'], 2: '123456', 3: '987654'} final = [] 这就是我最初的解决方案。这适用于两个值,但仅存在一个值时返回字符长度 for key, value in my_dict.items(): if le
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代表k,如果类型(v)=list和len(v)>1,则我的dict.items()中的v为k]
或者在您的代码中:
对于键,my_dict.items()中的值:
#只有此附加条件出现在`和`之前`
如果类型(值)=列表且长度(值)>1:
final.append(键)
这里,
'34534'
和['534','456465']
都是可编辑的,len()
函数对这两个函数都有效,因此,我们需要检查值的类型,并且只在列表
的情况下检查长度。您的最终代码变量似乎与您想要的相反。祝您好运,谢谢@Jarmode还可以重写为一行:final=[k代表k,v在我的dict.items()中如果是instance(v,list)]
我怀疑如果type是list,它总是意味着不止一个项,所以通过删除第二个条件(len>1),您的代码可以变得更快