首页 > 解决方案 > 获取列表中每个元素到任何其他元素的距离

问题描述

我有一个清单:

l  = [10,22,3]

我正在尝试创建一个返回距离(它们在列表本身中有多近)的函数,这样任何元素左侧的元素都具有负值,而其右侧的元素具有正值:

#optimal output
dis = [[0,1,2],[-1,0,1],[-2,-1,0]]

有没有快速的方法来做到这一点?

标签: python-3.xlist

解决方案


您可以尝试嵌套的 for-in 循环。这里的想法是只检索每个值的索引及其与其他值的距离。

nums = [10, 22, 3]
distances = []

for i in range(len(nums)):
    for n in range(len(nums)):
        distances.append(i-n)

print(distances)

输出:

[0, -1, -2, 1, 0, -1, 2, 1, 0]

另外,永远不要命名变量l,因为它看起来像 1。


推荐阅读