我试图将一个类似坐标的值附加到列表中。以下是我的代码到目前为止,但当我需要它返回["(0,1),(1,1),(1,2)"]
时它会返回[(0,1),(1,1),(1,2)]
。
def read_coords(s):
coords_s = []
row = 0
split_coords = s.split('\n')
for i in split_coords:
i = list(i)
for z in range(len(i)):
indiv_coord = []
if i[z] == 'O':
coords_s.append('('+str(row)+','+str(z)+')')
row += 1
return coords_s
我使用的测试用例是:
应该返回的 read_coords("O..\n.OO\n")
- > [(0,0), (1,1), (1,2)]
o read_coords("\n\nO..\n.OO\n\n")
→`[(0,0),(1,1),(1,2)]
read_coords(".....\n.....\n")
→[]
答案 0 :(得分:3)
您无法创建您认为自己的数据结构。
这一行你在这里:
coords_s.append('('+str(row)+','+str(z)+')')
你在做什么实际上是在你的列表中追加一个字符串为"(row,z)"。
您所指的结构称为tuple。
您应该更改代码以将元组实际附加到列表中,并且类型转换为str
也很可能也是不必要的。所以,你可以这样做:
coords_s.append((row, z))