gpt4 book ai didi

python - 我无法在 for 循环中增加列表中的特定值

转载 作者:太空宇宙 更新时间:2023-11-03 21:11:01 24 4
gpt4 key购买 nike

我在我的自动驾驶汽车项目中使用 python。因此,我研究了一种从 Dijkstra 算法返回值的算法。我给出算法(位置、目的地),它返回最短路径。然后我添加方向值。但我无法在某些时候增加这些值。这是我的代码:

coordinates = [['X',0,20],['B',15,20],['H',15,45],['G',20,45],['Y',20,55]]
dir = dijsktra(graph,'X','Y')
indexes = []
for i in range(len(dir)):
for j in range(len(coordinates)):
if dir[i] == coordinates[j][0]:
indexes.append(j)

for i in range(len(dir)-1):
if coordinates[indexes[i]][1] == coordinates[indexes[i+1]][1]:
turnons.append(['R',i+1])
elif coordinates[indexes[i]][2] == coordinates[indexes[i+1]][2]:
turnons.append(['L',i+1])

list_lenght = len(dir) + len(turnons)
for i in range(list_lenght):
for j in range(len(turnons)):
if turnons[j][1] == i:
dir.insert(i,turnons[j][0])
if turnons[j] != turnons[len(turnons)-1]:
print(turnons[j])
turnons[j + 1][1] += 1 // That's is the problem.

这是预期的输出:['L', 1]['R', 3]['L', 5]['R', 7]

这就是我得到的:['L', 1]['R', 3]['L', 4]

这里

  • L = 左
  • R = 右

最佳答案

女士们先生们,我们找到他了。

coordinates = [['X',0,20],['B',15,20],['G',20,45],['Y',20,55],['H',15,45]]
dir = dijsktra(graph,'B','X')
indexes = []
for i in range(len(dir)):
for j in range(len(coordinates)):
if dir[i] == coordinates[j][0]:
indexes.append(j)

turnons = []
newdir = []
for i in range(len(dir)-1):
if coordinates[indexes[i]][1] == coordinates[indexes[i+1]][1]:
turnons.append(['R',i+1])
elif coordinates[indexes[i]][2] == coordinates[indexes[i+1]][2]:
turnons.append(['L',i+1])

uzunluk = len(dir) + len(turnons)
turnsyc = 0
dirsyc = 0
print(dir,turnons)
for i in range(uzunluk):
if i % 2 == 0 or i == 0:
newdir.append(dir[dirsyc])
dirsyc += 1
else:
newdir.append(turnons[turnsyc][0])
turnsyc += 1

关于python - 我无法在 for 循环中增加列表中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55063511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com