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

Python 嵌套用于循环、迭代、计算项目的多次出现次数

Python 嵌套用于循环、迭代、计算项目的多次出现次数,python,loops,nested,Python,Loops,Nested,这是一段代码,在底部,在代码的“注释掉”部分,有一行让我感到惊讶。请看一看: #!/path/to/python #-*- coding: utf-8 -*- def frequencer(sliced): podium = [] for item in sliced: scat = len(sliced) print ("le the first scat for the word ' {0} ' is '{1} '.".forma

这是一段代码,在底部,在代码的“注释掉”部分,有一行让我感到惊讶。请看一看:

#!/path/to/python 
#-*- coding: utf-8 -*-
def frequencer(sliced):    
    podium = []  
    for item in sliced:
        scat = len(sliced)
        print ("le the first scat for the word ' {0} ' is '{1} '.".format(item, scat))
        for indice in range (len(sliced)):
            print("indice = ", indice)
            print("sliced[indice]",sliced[indice])
            if sliced[indice] == item:
                print ("sliced[indice] is equal to ' {0} ', identical to ' {1} ' item.".format(sliced[indice], item))
                scat -= 1
                print("scat is equal to ' {0} '.".format(scat))
        print("scat exdented: ", scat)
        frequence = len(sliced) - scat
        print("frequence: ", frequence)
        podium += [frequence]
        print("podium: ", podium)
    print("podium: ", podium)
    return(max(podium))
print(frequencer( ['Here', 'is', 'a', 'line', 'like', 'sparkling', 'wine', 'Line', 'up', 'now', 'behind', 'the', 'cow']))

'''
le the first scat for the word ' line ' is '13 '.
indice =  0
sliced[indice] Here
indice =  1
sliced[indice] is
indice =  2
sliced[indice] a
indice =  3
sliced[indice] line
sliced[indice] is equal to ' line ', identical to ' line ' item.
scat is equal to ' 12 '.
indice =  4
sliced[indice] like
indice =  5
sliced[indice] sparkling
indice =  6
sliced[indice] wine
indice =  7
sliced[indice] Line  <-- *WHY IS THIS NOT CONSIDERED EQUAL TO "line"?*
indice =  8
sliced[indice] up
indice =  9
sliced[indice] now
indice =  10
sliced[indice] behind
indice =  11
sliced[indice] the
indice =  12
sliced[indice] cow
scat exdented:  12
frequence:  1
podium:  [1, 1, 1, 1]
'''
我的问题是:

项目行在列表中表示了2次,我确信scat=11,frequency=2

我尝试过许多不同的缩进,但主要的兴趣是我没有能力跟随程序命令机器的操作过程


为了说明这一点,我尝试打印了许多步骤,但我确实需要一些进一步的澄清。请帮忙

Python字符串比较区分大小写。所以'A'='A'是假的。如果要进行不区分大小写的比较,应该使用lower或upper方法将字符串设置为小写或大写。所以'A'。lower=='A'是真的

在您的情况下,由于它们是多个字符串,您可能希望在这两个字符串上都使用lower,例如sliced[indice].lower==item.lower。您还可以在开始之前将整个列表转换为小写,从而完全避免问题,如下所示:

slicedlow = [item.lower() for item in sliced]
但是,可以使用集合将整个算法转换为几行。计数器对象:

甚至一行:

from collections import Counter
maxcount = max(Counter(item.lower() for item in sliced).values())

@逻辑。非常感谢您对样式的修改。正如你所猜测的,读英语和写作对我来说并不容易,但我喜欢这样。是的!我是漫不经心的。黑猫:谢谢,如果这是正确的答案,请把它标记成这样,这样其他人就可以找到它。
from collections import Counter
maxcount = max(Counter(item.lower() for item in sliced).values())