Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.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/linq/3.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_Dictionary_Keyerror - Fatal编程技术网

Python 字典中的键错误

Python 字典中的键错误,python,dictionary,keyerror,Python,Dictionary,Keyerror,我的字典有一些关键错误 result={} for (k,v) in movies.items(): if not v[1] in result: result[v[0]]=0 result[v[0]]+=int(1) if not v[2] in result: result[v[2]]=0 result[v[2]]+=int(1) if no

我的字典有一些关键错误

    result={}    
    for (k,v) in movies.items():
        if not v[1] in result:
            result[v[0]]=0
        result[v[0]]+=int(1)
        if not v[2] in result:
            result[v[2]]=0
        result[v[2]]+=int(1)
        if not v[3] in result:
            result[v[3]]=0
        result[v[3]]+=int(1)
        if not v[4] in result:
            result[v[4]]=0
        result[v[4]]+=int(1)
        if not v[5] in result:
            result[v[5]]=0
        result[v[5]]+=int(1)
    list5= sorted(result.items(),key=operator.itemgetter(1),reverse=True)
    print list5
因此,我尝试创建一个字典,在其中循环浏览另一个字典(电影),并将每个电影中的演员添加为键。在我的字典里,关键是演员的名字,值是他总共拍了多少部电影。然而,我似乎得到了一个关键的错误。知道为什么吗

另外,每部电影有5个演员,这就是为什么我有5个循环键


谢谢,Junaid

在这里只需使用
计数器
就可以了。作为奖励,这部电影有多少演员不再重要了

from collections import Counter
c = Counter(i for v in movies.values() for i in v)
print c.most_common()
另一种绕过参与者的方法是使用
chain.from\u iterable

from itertools import chain
c = Counter(chain.from_iterable(movies.values()))
print c.most_common()

只需在此处使用
计数器
就容易多了。作为奖励,这部电影有多少演员不再重要了

from collections import Counter
c = Counter(i for v in movies.values() for i in v)
print c.most_common()
另一种绕过参与者的方法是使用
chain.from\u iterable

from itertools import chain
c = Counter(chain.from_iterable(movies.values()))
print c.most_common()

可能是这里某个地方的打字错误:

if not v[1] in result:
    result[v[0]]=0
result[v[0]]+=int(1)
为简单起见,请使用
defaultdict
或setdefault,并在切片上迭代以实现统一:

 import collections
 result = collections.defaultdict(int)
 for k, values in movies.items():
    for value in values[:6]: # first 6, from 0th to 5th
        result[v] += 1

可能是这里某个地方的打字错误:

if not v[1] in result:
    result[v[0]]=0
result[v[0]]+=int(1)
为简单起见,请使用
defaultdict
或setdefault,并在切片上迭代以实现统一:

 import collections
 result = collections.defaultdict(int)
 for k, values in movies.items():
    for value in values[:6]: # first 6, from 0th to 5th
        result[v] += 1

我想这对你来说已经足够了

result = {}

for movie, actor_list in movies.iteritems():
    for actor in actor_list:
        result[actor] = result.get(actor, 0) + 1

print sorted(result.items(), key=operator.itemgetter(1), reverse=True)

我想这对你来说已经足够了

result = {}

for movie, actor_list in movies.iteritems():
    for actor in actor_list:
        result[actor] = result.get(actor, 0) + 1

print sorted(result.items(), key=operator.itemgetter(1), reverse=True)

请显示完整的错误消息。1已经是
int
int(1)
是冗余的,也是冗余的。请显示完整的错误消息。1已经是
int
int(1)
是冗余的,也是冗余的。