2012-12-26 52 views
0

我需要扫描几个字符串(每行是字符串)的列表,找到符号“+”或“@”(只能出现其中的一个),并打印x,y坐标。左上角是(0,0),如果你保持正确和下降的值增加。查找特定图表的坐标

我不明白什么是错我的代码:

x,y=-1,-1 
    for row in my_list: 
      y+=1 
      for symbol in row: 
        x+=1 
        if symbol=="@": 
          makom=(x,y) 
          player="@"  
        if symbol=="+": 
          makom=(x,y) 
          player="+" 


    print makom 

列表:

#### 
# .# 
# ### 
#*@ # 
# $ # 
# ### 
#### 

输出:

(2,3) 
+0

你可以让你的代码更清晰的通过'枚举()'内置相当比手动计数。 –

+0

你期望输出什么? –

+0

coordinate(2,3) – user1816377

回答

2

你忘了复位x同时改变行:

y = -1 
for row in my_list: 
     x = -1 
     y += 1 
     for symbol in row: 
       x += 1 
       if symbol == "@": 
         makom = (x,y) 
         player = "@"  
       if symbol == "+": 
         makom = (x,y) 
         player = "+" 


print makom 

 

只是为了保持完整性,你就不会犯这样的错误,如果你使用的enumerate:d

for y, row in enumerate(my_list): 
     for x, symbol in enumerate(row): 
       if symbol == "@": 
         makom = (x, y) 
         player = "@"  
       if symbol == "+": 
         makom = (x, y) 
         player = "+" 


print makom 
+0

非常感谢你! – user1816377