2015-07-20 154 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}