如何使用迭代器作为列表名称创建新列表?
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 ) + '= []')
我正在使用 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 ) + '= []')