在字母列表示例中定义/初始化变量

时间:2018-10-18 17:24:41

标签: python

为什么在下面的代码中必须初始化/定义字母变量(作为列表)而不是字母变量(作为字符)?在示例python代码中,我查看了变量有时是初始化/定义的,有时不是。困惑。

此外,在下面的代码中,如果您摆脱了字母表= [],该代码仍然有效,但是由于某些原因,字母表列表包含2个字母表副本,这与当字母表= []时不同,在这种情况下,字母表列表仅包含一个字母副本。为什么会这样?

# Create alphabet list of lowercase letters
alphabet = []
for letter in range(97,123):
    alphabet.append(chr(letter)

1 个答案:

答案 0 :(得分:0)

  

为什么在下面的代码中必须初始化/定义字母变量(作为列表)而不是字母变量(作为字符)?在示例python代码中,我查看了变量有时是初始化/定义的,有时不是。困惑。

alphabet的情况下,您将通过append结束来修改列表。您不能追加到不存在的变量。

对于letter,变量在循环中被赋值后即被初始化。到您尝试对其执行任何操作时,它已经存在,因为已为其分配了一个值。

  

此外,在下面的代码中,如果您摆脱了字母表= [],该代码仍然有效,但是由于某些原因,字母表列表包含2个字母表副本,这与当字母表= []时不同,在这种情况下,字母表列表仅包含一个字母副本。为什么会这样?

听起来您正在通过在单个解释器会话中多次运行相同的代码进行测试。如果您没有在每次循环前都清除alphabet,那么您将多次追加到同一列表中,这将导致您的值重复。