我正在尝试遍历 python 中的一对坐标列表的列表列表列表,我想对每一对坐标求和一个值,但我也想保留结构。
我认为一个例子胜过一千个字所以:
coordinates = [[[-15.418887, 28.180395], [-15.418887, 28.180395]],
[[-15.794088, 28.018681], [-15.794088, 28.018681]]]
这是一个非常基本的示例,但并非真实情况。实际上,除了一对坐标外,每个列表的长度都是可变的。所以可能有 4 个列表,直到坐标对列表的列表或者它可能是 3,它是可变的
我想向这些坐标中的每一个添加 3(例如),但保持原始结构(我不想扁平化列表列表的列表....)
也许这对尝试回答问题很有用:
- 我有一个 geojson 文件,我想将一个要素(一个区域)移动到另一个地方。为此,我试图将一个常量值与该区域的每个坐标的纬度和经度相加
- 我认为这可以使用递归来完成,但我不确定如何
感谢任何帮助。
最佳答案
您可以使用递归函数来处理一般情况。只要检查你是否有一个列表并递归,否则返回相加的结果:
def add_to_list(l, n):
if not isinstance(l, list):
return l + n
return [add_to_list(sub, n) for sub in l]
coordinates = [[[-15.418887, 28.180395], [-15.418887, 28.180395]],[[-15.794088, 28.018681], [-15.794088, 28.018681]]]
add_to_list(coordinates, 3)
#[[[-12.418887, 31.180395], [-12.418887, 31.180395]], [[-12.794088, 31.018681], [[-12.794088, 31.018681]]]]
# A more general case:
add_to_list([1, [2, [5, [6]]], 3], 2)
# [3, [4, [7, [8]]], 5]
# Degenerate cases
add_to_list([], 2)
# []
add_to_list(5, 2)
# 7
这假设您的嵌套数据将是数字或列表。
关于python - 如何遍历列表列表的列表列表...... python 中的一对坐标列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65414413/