如何使用迭代器作为列表名称创建新列表?

时间:2016-10-26 16:26:04

标签: python list loops syntax-error

我正在使用Python 2.7,我正在尝试开发一个能够读取csv文件并为每列创建空列表的函数。换句话说,使用索引迭代器来连接' col'使用迭代器,从而为每列创建唯一的空列表,例如空列表名为col1,col2,col3,col4等。我的问题:

SyntaxError: can't assign to function call

从最后一行开始:

my_file = open( r'{}'.format( file_path ) )

for i, line in enumerate( my_file ):
    if i >= 1:
        row = line.split( ',' )

col_N = len( line.split( ',' ) )   

for i in range( 0, col_N ):
    j = i + 1
    'col{}'.format( j ) = []

2 个答案:

答案 0 :(得分:1)

'col{}'.format( j )

是一个字符串。不是变量。您无法为其分配值。

将你的dinamic变量添加到全局变量:

globals()['col{}'.format(j)] = []

然后定期使用您提供的名称,或者如果j是dinamic,则使用globals()['col{}'.format(j)]

答案 1 :(得分:1)

如果您不希望这些新变量必须进入全局命名空间,您可以使用exec:

exec('col{}'.format( j ) + '= []')