如何在python中创建没有声明的变量?

时间:2014-05-30 20:51:16

标签: python python-2.7

假设最合理的文件类型,我可以动态创建python吗?

换句话说,我如何避免创建空变量?在这个循环中,i似乎不需要介绍,为什么list

list=[]
for i in other_list:
     list.append(i)

4 个答案:

答案 0 :(得分:5)

在这种情况下,您需要附加内容。由于您正在修改现有的东西,因此需要存在某些东西。 i未被修改。

实际上,Python确实允许你在不事先实例化的情况下内联列表,它被称为list comprehension,它的工作方式如下:

dont_name_your_variables_list = [i*2 for i in range(10)]
编辑:正如@BrenBarn所提到的另一种思考方式是将其视为无法对尚未赋值的变量做任何事情。

首先解释:

i+1  # i does not yet exist, and since i+1 is a modification on i, this will not work

第二个解释:

i+1  # i has no value assign to it. Since i+1 is doing something to i, this will not work.

答案 1 :(得分:2)

for循环 item的声明/简介。您不必声明变量,但每个变量都必须有一个值。您不能创建没有值的变量,除非它具有值,否则不能使用变量。

分配值的一种方法是someVar = blah。另一种方法是for someVar in blah - 也就是说,for循环为变量赋值,就像=赋值一样。 Python中还有其他构造可以为变量赋值,例如defclass

listitem都在代码中分配了值,只是以不同的方式。你不能做的是尝试对没有赋值的变量做一些事情。

答案 2 :(得分:1)

您必须显式创建list,否则Python将不知道应该具有什么值。 i的创建更加隐含,因为i的值由您循环的列表自动确定。

答案 3 :(得分:0)

据我所知,这是Syntactic Sugar。 这条线

for i in list:
list.append(item)

被解释为(伪代码)为

Create variable i
Set type of i to type of the first entry in list
While the list is not scanned through completely:
    Append item to the list.