这段代码正在考试中,它询问它的输出是什么。
不幸的是我错了,并且说它全是1。
我对这个程序对if / else语句的具体做法感到困惑。
我是C程序员,所以如果可能的话,有人可以将if / else语句翻译成C代码,这样我就能理解发生了什么。谢谢!
编辑:澄清一下,我不确定条件是什么意思“如果x在d”
def somefunction(L):
d = {}
for x in L:
if x in d:
d[x] = d[x] + 1
else:
d[x] = 1
return d
L = [6, 10, -2, 2, 6, 4, -2, 6]
print somefunction(L)
output: {10: 1, 2: 1, 4: 1, -2: 2, 6: 3}
答案 0 :(得分:1)
in
执行包含检查。它查看右侧操作数以查看它是否包含左侧操作数。
>>> 2 in [1, 2, 4]
True
>>> 3 in [1, 2, 4]
False
答案 1 :(得分:0)
我鼓励你不要将所有内容都翻译成C. Python是完全不同的,并且试图将事物保持在C框架中会使事情变得更难理解。
一件很棒的事情就是解释了Python,所以你可以输入“python”然后输入命令来查看它们的作用。您可以在操作事物时检查所有变量。例如,你可以这样做:
L = [6, 10, -2, 2, 6, 4, -2, 6]
for x in L:
print x
看看“in”的作用。对于其余代码也是如此。此外,还有很多关于Python的在线教程,例如Google“潜入Python”。
答案 2 :(得分:0)
在本代码中基本上看到你正在做的是你在列表中重复元素的次数。你正在使用字典作为计算的手段..
首先在if-else块中检查元素是否存在..如果它存在,那么你使用元素作为键递增计数。这是你创建一个新的密钥,密钥是元素和默认值为1 ...
因此,您遍历整个列表并检查列表中每个元素的计数..
d[i]=j
#i is key,j is value.
最后,你打印字典打印你的发现.. !!