2010-03-11 92 views
0

我有一个简单的for循环问题,当我运行下面的代码时,会打印出一系列“蓝绿色”序列,然后是一系列“绿色”序列。我想要的输出是;如果行[4]等于1,则打印蓝色,否则打印绿色。Python:for循环问题

for row in rows: 
     for i in `row[4]`: 
      if i ==`1`: 
       print 'blue ' 
      else: 
       print 'green ' 

任何帮助将不胜感激

感谢

亚斯

+0

这似乎不是一个有效的Python代码。另外,什么是“行”? – SilentGhost 2010-03-11 16:31:43

+0

你的意思是索引4(第五个元素)的行的内容是== 1打印蓝色其他打印绿色,还是你想在每一行打印蓝色其他打印绿色? – 2010-03-11 16:33:40

+0

行1或2维列表? – 2010-03-11 16:33:48

回答

3

尝试是这样的:

for i in xrange(len(rows)): 
    if rows[i] == '1': 
    print "blue" 
    else: 
    print "green" 

或者,因为你实际上并不似乎并不在乎该指数,你当然可以做得更干净:

for r in rows: 
    if r == "1": 
    print "blue" 
    else: 
    print "green" 
+0

为什么不在'行中行'和测试行的值? – LB40 2010-03-11 16:30:18

+0

@LB:嗯......我想,因为我有点头脑冷静。它发生了。我会编辑,谢谢! – unwind 2010-03-11 16:33:11

1
if rows[4] == 1: 
    print 'blue' 
else: 
    print 'green' 
2

enumerate()功能将迭代,并给你的索引以及价值:

for i, v in enumerate(rows): 
    if i == 4: 
     print "blue" 
    else: 
     print "green" 

,如果你想在每第四行其他绿色打印蓝色做到这一点:

for i, v in enumerate(rows): 
    if i % 4 == 0: 
     print "blue" 
    else: 
     print "green"