python-3.x - 获取列表中每个元素到任何其他元素的距离
问题描述
我有一个清单:
l = [10,22,3]
我正在尝试创建一个返回距离(它们在列表本身中有多近)的函数,这样任何元素左侧的元素都具有负值,而其右侧的元素具有正值:
#optimal output
dis = [[0,1,2],[-1,0,1],[-2,-1,0]]
有没有快速的方法来做到这一点?
解决方案
您可以尝试嵌套的 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。
推荐阅读
- postgresql - 使用 Amazon Aurora Postgres 插入后执行 SELECT 的好模式?
- r - 将创建日期列添加到多个 CSV 文件
- sockets - 如果监听套接字是非阻塞套接字,accept返回非阻塞套接字?
- jquery - 如何使用 jquery .animate 在 div 之间平滑过渡动画
- angular - Angular BehaviorSubject 数据服务 > 嵌套数据问题
- python - 将图像从 float64 转换为 uint8 使图像看起来更暗
- python - 基于整个数据帧的编码标签列
- regex - 如何使用 fluent-bit 解析 istio-proxy 日志
- python - 如何根据值获取所有唯一的字典集?
- javascript - 如何隔离/封装函数,以便只能访问函数中的参数和变量