一个小的编程难题


z=[1,2,","]
count=0

for i in z:
    if (",") in z:
        count+=1
        print count

此 Python 代码计算列表 z 中的所有逗号。为什么?答案是3.什么时候应该是一个。可以通过更改元素进行测试。

如果删除列表元素逗号 ",",程序将生成空白,而不是 2 个逗号作为计数。

问题:

  1. 有人可以回答为什么逗号只被计算在内吗?
  2. 为什么逗号计数是 3,而它应该是 1。

谢谢

将其更改为

if (",") in i:

实际上,您应该使用更好的名称(i通常是指数组或整数计数的索引,而您正在迭代列表中的实际项目(

for item in z:
    if (",") in item:
        count+=1
        print count

你之所以看到 3 作为你的答案,是因为这个:

if (",") in z:
您正在

遍历列表,对于列表中的每个元素,您正在检查','是否在列表中 z 中,它是。计数变量将相应递增。

三次检查 '","' 是否在 z 中。 是的,它是。 是的,它仍然是。 又是的。 那是3。

for i in z:
    if i == ',':
        count+=1
print count

当你使用if (",") in z python检查逗号是否在你的列表中,它每次都会返回true,当你从列表中删除","时,它永远不会产生true,计数将为零,所以正确的版本将是

z=[1,2,","]  
count=0
for i in z:
    if i == ',':
        count+=1
print count

而且您的打印声明不应在您的正文中

最新更新