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

Python 一个小的编程难题

Python 一个小的编程难题,python,Python,这个python代码统计列表z中的所有逗号。为什么?答案是3。什么时候应该是1。人们可以通过改变元素进行测试 若列表元素逗号“”被删除,程序将生成空白,而不是2个逗号作为计数 问题: 有人能回答为什么只计算逗号吗 为什么逗号计数应为1时为3 谢谢将其更改为 z=[1,2,","] count=0 for i in z: if (",") in z: count+=1 print count 实际上,您应该使用更好的名称(i通常指数组中的索引或整数计

这个python代码统计列表
z
中的所有逗号。为什么?答案是3。什么时候应该是1。人们可以通过改变元素进行测试

若列表元素逗号“”被删除,程序将生成空白,而不是2个逗号作为计数

问题:

  • 有人能回答为什么只计算逗号吗
  • 为什么逗号计数应为1时为3
  • 谢谢

    将其更改为

    z=[1,2,","]
    
    count=0
    
    
    for i in z:
        if (",") in z:
            count+=1
            print count
    
    实际上,您应该使用更好的名称(
    i
    通常指数组中的索引或整数计数..而您正在迭代列表中的实际项)


    您之所以将3视为您的答案,是因为:

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

    您在列表中进行迭代,并且对于列表中的每个元素,您都要检查列表中是否有
    ,“
    ”。计数变量相应地递增。

    三次检查“,”是否在z中。是的。是的,现在仍然是。是的。那是3

    if (",") in z:
    
    当在z中使用
    if(“,”)时
    python会检查逗号是否在列表中,并且每次都会返回true;当从列表中删除“,”时,它永远不会生成true,并且计数将为零,因此正确的版本将为

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

    以及你的打印声明不应该在你的正文

    中,而你在众多答案中所关注的具体问题,也要考虑你的方法是否是最有效的/可读的。另请参见count()。
    for i in z:
        if i == ',':
            count+=1
    print count
    
    z=[1,2,","]  
    
    count=0
    
    for i in z:
        if i == ',':
            count+=1
    print count