2015-04-01 61 views
0

我已經使用Python將數據從SQLite3數據庫追加到數組。現在,我有一個數組,我想在沿線的格式打印的附加數據:打印數組中的第一個值而不是第一個字母? (Python)

print "Team: " + new_array[0][0] + " Score: " + new_array[0][1] + " Overall: " + new_array[0][2] 

我已經該代碼會好起來的這一點。但是,我正在嘗試使用計數器創建一個循環,以上述格式打印數組中的所有數據。

問題是,當我嘗試創建for循環並打印數組中的第一個值時,只打印該值的第一個字母。例如:

print new_array[0] 

...將打印:

team_6 
    team_3 
    team_5 
    team_1 
    team_2 
    team_4 

......還有......

print new_array[0][0] 

...將打印:

t 
    t 
    t 
    t 
    t 
    t 

這是我到目前爲止: import sqlite3

new_array = [] 

    conn = sqlite3.connect('league.db') 
    c = conn.cursor() 

    game = c.execute("SELECT Team,Score,Overall FROM League ORDER BY Overall DESC") 
    for items in game: 
     new_array.append(items) 

    print new_array[0][0] 

上面的代碼將打印出'team_6',因爲它應該。但是,只有在創建for循環時纔會出現打印問題。

您的幫助將不勝感激。謝謝。

+0

我很困惑。你說'print new_array [0] [0]'會打印六個T。這就是你想要做的事情,但它不是那樣做的;或者它正在做什麼,你不希望它這樣做? – Kevin 2015-04-01 13:29:25

+0

對不起。我的意思是當我運行時: print new_array [0] [0] ...沒有for循環,它會打印'team_6'。但是,當我創建一個for循環,然後打印new_array [0] [0]它將打印6'噸。 – TheElderLatham 2015-04-01 13:30:30

+0

我不假設你可以簡化你的例子,所以它只是使用預先製作的字符串列表,而不是必須使用sqlite來填充它。不用說,我們沒有聯盟表,所以我們無法運行您的代碼。 – Kevin 2015-04-01 13:31:29

回答

1

試試這個得到預期的輸出

for items in game.fetchall(): 
    print items[0] # should be `team6` and so on 

如果你希望把array.Do這樣

for items in game.fetchall(): 
    new_array.append(items) 

>>>new_array[0][0] 
'team6' 
1

這是由你遍歷值造成的。你認爲new_array[0][0]是一個單詞,但實際上new_array[0]是單詞,而[0][0]是該單詞中的第一個字符。所以如果你想打印這個單詞而不是第一個字母,只需使用new_array[0]

1

你創建數組的方式已經成爲一個字符串。使用append()像下面這樣

a = list(); 
a.append(items); # these will be your string elements 

print(a[0]) # will print your first item 
+0

這就近了。但是,它仍然生產6個相同的產量。打印[0] [0]將輸出... '代碼'( team_6 team_6 team_6 team_6 team_6 team_6) 和印刷一個[0] [0] [0]將輸出... '代碼'( 噸 噸 噸 噸 t t) 有關如何在for循環中自行打印整個團隊名稱的任何想法? 這是我最後一次嘗試: 「碼」( 的項目中: \t打印一個[0] [0] [0]) – TheElderLatham 2015-04-01 14:09:00

+0

對不起,我不知道如何格式化的意見。 :( – TheElderLatham 2015-04-01 14:10:35

相關問題