2016-10-26 2 views
0

私はPython 2.7を使用しています。私はcsvファイルを読み込んで各列の空のリストを作成する機能を開発しようとしています。つまり、インデックスイテレータを使用して 'col'をイテレータと連結し、各列に対して一意の空のリストを作成します。で、最後の行からリスト名としてイテレータを使って新しいリストを作成するには?

SyntaxError: can't assign to function call 

:COL1、COL2、COL3、COL4など私の問題をという名前の空のリスト

'col{}'.format(j) 

この

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) = [] 
+1

あなたが先にそれを知っていない場合は、インデックス名の後に変数に名前を付けるために正当な理由なく時間の。リストの辞書を作って、その名前をキーとして使用してください。 –

+0

(OT)あなたのコードのフォーマットは醜いです。 [PEP 8](https://www.python.org/dev/peps/pep-0008/)をチェックしてください。 – zvone

答えて

1

は文字列です。変数ではありません。値を割り当てることはできません。


グローバルに自分の動の変数を追加するには:

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

次にjが動のであればglobals()['col{}'.format(j)]として、あなたが入力した名前と定期的にそれを使用するか、または。あなたはこれらの新しい変数は、必ずしもあなたがexecを使用することができますグローバル名前空間に入りたくない場合は

+0

作品!私はすぐに受け入れます。ありがとう – AF2k15

1

exec('col{}'.format(j) + '= []') 
関連する問題