通过循环缩进的变量类型

2024-09-19 23:48:20 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一个代码片段,在代码中通过自上而下的方式,我打印了名为“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'>

我不明白为什么讲台变量会失去他的类型。你知道吗

有人对我说:

“现在,我想你的问题是:特洛伊赛姆讲台-对吗?因为讲台=讲台.append(频率)。只需将新值附加到列表中,重新分配变量在这里是不正确的。就这么做吧讲台.append(频率)。你知道吗

是的。但我不明白为什么。可能我们认为这是一个新的变量。如果我需要用一个方法来做一些事情,在写变量=变量.方法(){在ruby语言中有一个带“!”的方法没有'!“}你知道吗


Tags: 方法代码类型forlentypeclassprint
2条回答

这是因为append()方法就地修改列表。它不会返回一个新的列表,但会修改作为参数给定的列表。它的返回值是None,这就是为什么您的“troisieme podium”类型是NoneType。你知道吗

>>> 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)

因为append总是返回None。您可以在终端中轻松验证这一点。你知道吗

没有不修改的附加:最好的方法是复制列表并附加到副本。你知道吗

相关问题 更多 >