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

How to create new lists with iterator as list name?

我正在使用 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 ) = []

这个

'col{}'.format( j )

是一个字符串。不是变量。你不能给它赋值。


要将动态变量添加到全局变量:

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

然后使用您提供的名称定期使用它,或者作为 globals()['col{}'.format(j)] 如果 j 是动态的。

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

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