如何在 for 循环中引用嵌套列表中的元素?
How do I refer to an element in a nested list within a for-loop?
我有一个嵌套的坐标列表 [[x1, y1],[x2, y2],[x3,y3]...]
。
我想使用 for-loop
来确定两个连续点之间在 x 方向上的距离。我想稍后对 y 方向做同样的事情。这是我目前的尝试:
p1=[X1, Y1]
p2=[X2, Y2]
p3=[X3, Y3]
p4=[X4, Y4]
p5=[X5, Y5]
coordiantes = [p1, p2, p3, p4, p5]
for i in coordinates:
p1_x = i[0]
p2_x = i[0]+1
p1_y = i[1]
p2_y = i[1]+1
distance_x = p2_x - p1_x
显然,i[0]+1
不会为您提供下一个列表中的后续 x 值,而是将 1
添加到第一个 x 值。
我的问题是如何引用嵌套列表中的后续 x 值?所以,如果 i
引用 p1
,我也想在那个循环中得到 p2
。
我还尝试添加另一个变量 j
并赋值 j = i + 1
以便我可以使用 j[0] 引用后续的 x 值。但是,我收到无法将列表连接到 int 的错误。
提前致谢!
for i in coordinates
是一个 for-each 循环。您无权访问当前索引,i
直接是列表子项。
如果您想通过递增当前索引来访问相邻项目,则应使用 range
或 enumerate
循环。例如,
for ind in range(len(coordinates)-1):
p1_x = coordinates[ind][0]
p2_x = coordinates[ind+1][0]
p1_y = coordinates[ind][1]
p2_y = coordinates[ind+1][1]
distance_x = p2_x - p1_x
范围限制是 len-1 因为我们不想处理最后一个元素(ind+1 会越界)。
for i, n in enumerate(coord):
try:
print(coord[i]
print(coord[i+1])
except IndexError:
pass
try/except 索引错误部分。除此之外,在最后一位数字中给出错误。或者你也可以使用 :
for i, n in enumerate(coord):
if i == len(coord)-1:
pass
else:
print(coord[i])
print(coord[i+1])
另外,对于枚举,基本上你可以使用 range(len(coord))
而没有 try/except 如果部分 range(len(coord)-1)
给出了你想要的
我有一个嵌套的坐标列表 [[x1, y1],[x2, y2],[x3,y3]...]
。
我想使用 for-loop
来确定两个连续点之间在 x 方向上的距离。我想稍后对 y 方向做同样的事情。这是我目前的尝试:
p1=[X1, Y1]
p2=[X2, Y2]
p3=[X3, Y3]
p4=[X4, Y4]
p5=[X5, Y5]
coordiantes = [p1, p2, p3, p4, p5]
for i in coordinates:
p1_x = i[0]
p2_x = i[0]+1
p1_y = i[1]
p2_y = i[1]+1
distance_x = p2_x - p1_x
显然,i[0]+1
不会为您提供下一个列表中的后续 x 值,而是将 1
添加到第一个 x 值。
我的问题是如何引用嵌套列表中的后续 x 值?所以,如果 i
引用 p1
,我也想在那个循环中得到 p2
。
我还尝试添加另一个变量 j
并赋值 j = i + 1
以便我可以使用 j[0] 引用后续的 x 值。但是,我收到无法将列表连接到 int 的错误。
提前致谢!
for i in coordinates
是一个 for-each 循环。您无权访问当前索引,i
直接是列表子项。
如果您想通过递增当前索引来访问相邻项目,则应使用 range
或 enumerate
循环。例如,
for ind in range(len(coordinates)-1):
p1_x = coordinates[ind][0]
p2_x = coordinates[ind+1][0]
p1_y = coordinates[ind][1]
p2_y = coordinates[ind+1][1]
distance_x = p2_x - p1_x
范围限制是 len-1 因为我们不想处理最后一个元素(ind+1 会越界)。
for i, n in enumerate(coord):
try:
print(coord[i]
print(coord[i+1])
except IndexError:
pass
try/except 索引错误部分。除此之外,在最后一位数字中给出错误。或者你也可以使用 :
for i, n in enumerate(coord):
if i == len(coord)-1:
pass
else:
print(coord[i])
print(coord[i+1])
另外,对于枚举,基本上你可以使用 range(len(coord))
而没有 try/except 如果部分 range(len(coord)-1)
给出了你想要的