在Python中查找圆形列表中点之间的正向距离

2024-04-26 05:01:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我将使用的一个循环列表示例是[0, 1, 2, 3, 4, 5, 6, 7],类似于棋盘游戏中的方块0紧跟着方块7。我试图通过向前移动而不是最小距离来找到任意两点之间的距离。例如,0和7之间的距离将是7,但7和0之间的距离将是1。7和7之间的距离为0,依此类推。我曾尝试使用迭代器的循环生成器,但一直无法找到解决方案,因为我不知道如何处理这个问题。我真的很感激任何帮助,非常感谢:)!你知道吗


Tags: 游戏距离示例列表棋盘解决方案方块
3条回答

您还可以使用简单明了的模运算循环回索引。你知道吗

l =  [0, 1, 2, 3, 4, 5, 6, 7]
def cal_dist(p1, p2):
    ct = 0
    n = len(l)
    pos = l.index(p1)
    while l[pos] != p2:
        pos = (pos+1)%n
        ct=ct+1
    return ct

不断询问,不断成长:)

试试这个。。。你知道吗

numbers = [0, 1, 2, 3, 4, 5, 6, 7]

def fxn(point_a, point_b):
    count = 0
    position = numbers.index(point_a)
    while numbers[position] != point_b:
        if position + 1 == len(numbers):
            position = 0
            count += 1
        else:
            position += 1
            count += 1
    return count

可以尝试一些基于索引的东西,比如-

def dist(ind1, ind2):
    if ind1 > ind2:
        return len(x[ind1:]) + len(x[:ind2])
    else:
        return len(x[ind1:ind2])

其中ind1ind2是两个索引

相关问题 更多 >