所以我有一个数据文件,我想找到两件事:我给出的坐标是在区域内部还是外部,如果正确则返回将“1”的每个坐标放在其自己列表中的每一行中。这应该将其返回到字典中。该文件有以下内容:1 1 0 1 0 10 0 1 1 1 01 1 1 1 1 01 0 0 0 0 10 0 1 1 0 11 0 0 0 0 1我已将上述内容放入一个列表中,每个列表都包含代码:lines = []with open('area.dat', 'r') as a: for line in a: line = line.strip() if not line: continue lines.append(list(map(int, line.split()))) data.extend(map(int, line.split()))print(lines)我尝试通过代码获取坐标以及它是在区域之外还是在区域之内(对于 x 和 y)区域是列表的列表x = int(input('enter x: '))y = int(input('enter y: '))def cords(x, y, area): if x > 6 or y > 6: print('Outside Area') return(False) else: print('Inside Area') return(True)我想获取列表“区域”内的坐标 x 和 y 并返回它是否在其中。因此,例如,如果我输入 cords(0,4,area) 它将返回“True”,如果我输入 cords(3,7,area) 它将返回“False”。之后我想将它们按每行以 1 为一组放在一起。例如,第 1 行和第 2 行将给出:{1: [(0,4), (0,5)], 2: [(1,0), (1,1)]}感谢所有帮助。
1 回答
慕娘9325324
TA贡献1783条经验 获得超4个赞
对于第一部分,您有两个选择:
def cords(x, y):
return x >= 0 and x < 6 and y >= 0 and y < 6
第一个选项对于 6x6 的区域大小是静态的,请注意,数组索引从 0 开始,因此 6 已经超出范围。
def cords(x, y, area):
return x >= 0 and x < len(area) and y >= 0 and y < len(area[0])
第二个选项动态检查坐标是否在给定嵌套列表的范围内。您可能需要根据 x 和 y 是否与行和列相关来调整它,反之亦然。
现在,对于第二部分,您正在创建一个包含冗余信息的字典,因为索引(示例中的 1 和 2)直接与第一个轴(示例中的 0 和 1)相关,您可能需要重新考虑您实际的内容想要在这里实现。
d = {}
for i,row in enumerate(lines):
n = []
for j,v in enumerate(row):
if v == 1:
n.append([i,j])
d[i+1] = n
添加回答
举报
0/150
提交
取消