通过循环缩进的变量类型Python

问题描述 投票:0回答:2

这里是一个代码段,在自上而下的代码中,我打印了名为“ podium”的变量的类型)这是代码:

def frequence(entranche):
    podium = []
    print("premier podium", type(podium))
    for item in entranche:
        print ("deuxieme podium", type(podium))
        scat = len(entranche)
        for indice in range (len(entranche)):            
            if entranche[indice] == item:
                scat -= 1
            frequence = len(entranche) - scat

        podium = podium.append(frequence)
        print("troisieme podium", type(podium))
        plus_haute_frequence = max(podium)   
    return(plus_haute_frequence)
print(frequence("Je suis né dans le béton Coincé entre deux maisons".split()))

在代码之后,这是输出:

premier podium <class 'list'>
deuxieme podium <class 'list'>
troisieme podium <class 'NoneType'>

我不明白为什么领奖台变量会丢失他的类型。

有人说我:

“”,我想您的问题是这个:troisieme podium-对吗?这是因为podium = podium.append(frequence)。只需将新值附加到您的列表中,然后在此处重新分配变量即可。做podium.append(频率)”。

是的。但我不明白为什么。可能我们认为这是一个新变量。如果我需要做些什么,该怎么办有些方法在编写variable = variable.method()之前不会更改命名变量,在红宝石语言中,方法带有“!”并且没有'!“}

python methods types indentation
2个回答
0
投票
>>> a = [1, 2, 3] >>> a.append(4) >>> a [1, 2, 3, 4] >>> print(a.append(5)) None >>> a [1, 2, 3, 4, 5]

所以这行:

podium = podium.append(frequence)

应该简单:

podium.append(frequence)

2
投票
没有没有无法修改的附加项:最好的办法是复制列表并将其附加到副本中。
© www.soinside.com 2019 - 2024. All rights reserved.