2015-04-01 228 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

相关问题