alist = [5, 7, 6, 2, 9, 1, 7]
D = {}
列表中的每个唯一编号,设置一个新密钥 对于字典中的每个键,计算该键的编号并设置为值
这应该看起来像{5:1, 2:1, 6:1, 9:1, 1:1, 7:2}
算法:
For each number n on the input list:
∗ If n in count: set count[n] to count[n] + 1
∗ else: set count[n] to 1
我不知道如何解决这个问题。谁能告诉我怎么样?
尝试:
for number in alist:
if number in D:
D[number] = D[number]+1
else:
D[number] = 1
错误:
Traceback (most recent call last): File "<pyshell#15>", line 3, in
<module> D[number] = D[number]+1 KeyError: 5
答案 0 :(得分:2)
<?php echo $foo; ?>
A PHP ERROR WAS ENCOUNTERED
Severity: Notice
Message: Undefined variable: foo
Filename: template/header.php
答案 1 :(得分:1)
最简单的方法是字典理解
count_dict = {elem:a_list.count(elem) for elem in a_list}
它就像一个for循环,但它指定了每个字典项的键和值。
答案 2 :(得分:1)
Ayush Shanker's answer是完全有效的方式来做你想要的。我将指出如何修复您现在拥有的代码。
首先,在这两行中
for number in alist:
if number in alist:
你基本上对于alist中的每个号码都说'#34;检查它是否在alist&#34;中。当然如此!所以,你真的希望第二行有if number in D:
,因为那时你要检查这个数字是否在你正在建立的词典中。
第二个问题是:
D[number] = D[number+1]
number
和number+1
这里是索引,因此您指的是D
中的两个不同元素。解决方案是将+1
移到外面。这就是固定代码的样子:
for number in alist:
if number in D:
D[number] = D[number] + 1
else:
D[number] = 1
要更加Pythonic,您还可以将D[number] = D[number] + 1
替换为D[number] += 1
。
答案 3 :(得分:0)
要修复代码和算法,您需要检查even
是否在n
中(它返回D.keys()
字典的键列表:
D
答案 4 :(得分:0)
解决方案:
def mode(somelist):
count = {}
for n in alist:
if n in count:
count[n]+=1
else:
count[n] = 1
return(count)