2015-07-20 107 views
0

我已经使用下面的代码从CSV文件中获取数据并将其放入列表中。输出是一系列列表,列表内是一个数组。从Python数组中选择元素

我想抓取CSV文件中每一行的第一项,并将其分配给一个变量。我开发的代码很长,但很长。如果可能的话,我有兴趣修改代码的第二部分而不是循环。

with open('player1.csv', 'rb') as f: 

    reader = csv.reader(f) 
    your_list = list(reader)  

print "First Player" 
Player1 = your_list[0:1] 
Player1name = (Player1[0:1]) 
Player1name = (Player1name[0]) 
Player1name = (Player1name[0]) 
print Player1name 
+0

你能否澄清一下你想要什么?你想要一个循环,而不是重复该代码的后半部分?另外为什么重复该行Player1name =(Player1name [0])? – Totem

回答

1

关于把每行的每个项目的第一项到一个数组,而不是具有单独的变量的每个项目是什么?

因此,像这样使用list comprehension

player_names = [row[0] for row in your_list] 

如果你想打印出来:

for name in player_names: 
    print name 
+0

正是我想要的! –

0

所提供的描述,假定你想评估存储的指令在string来自http://lucumr.pocoo.org/2011/2/1/exec-in-python/

>>> code = compile('a = 1 + 2', '<string>', 'exec') 
>>> exec code 
>>> print a 
3 

但是,每次查找每个CSV文件时,这是一个繁重的过程。为什么不使用字典并用密钥playerNname添加每个变量。例如playerDict = {'player1Name':var1, 'player2Name':var2, ..., 'playerNName':varN}