Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算每个字典键中的值数,包括一个值_Python_Python 3.x_Dictionary - Fatal编程技术网

Python 计算每个字典键中的值数,包括一个值

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

我有一个带有200e3个整数键的dict,每个键有一个或两个值(字符串)

我需要编写逻辑来检查每个键是否有多个值,如果有,则添加到列表中

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),您的代码可以变得更快