几乎在列表列表中列出Python

2024-10-01 13:27:29 发布

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

我在python中有一个列表,在我的例子中,列表是坐标。我想在此列表中添加新坐标,但前提是该坐标尚不存在。这很容易通过以下方式实现

List = [coord1,coord2,...,coordn]
coord = [x,y,z]
if not coord in List: List.append(coord) 

问题在于,这些坐标是由各种测角函数生成的,因此它们是浮点数,可能出现以下最小示例:

List =[[0,0],[1,0]]
coords = [0.99999999999,0.000000000001]

我不想添加新的坐标,因此我想知道是否有某种简单的方法来检查是否有一个简单的函数func,它将执行以下操作:

List =[[0,0],[1,0]]
coord = [0.99999999999,0.000000000001]
tol = 1e-10 
func(coord,List,tol) = True

func返回True,如果列表中存在坐标c,则||c-coord||<tol。其中一个限制是列表仍然是一个列表,因此如果不需要将其转换为numpy数组,则首选该列表,但通常使用numpy是可能的,我想也是必要的


Tags: 函数numpytrue列表if方式list例子
1条回答
网友
1楼 · 发布于 2024-10-01 13:27:29

这是一个常见问题,可以通过四舍五入浮点值来解决:

coord = [0.99999999999,0.000000000001]
rounded_coord = [ '%.2f' % elem for elem in coord ]

这将返回带有四舍五入浮点值的列表,但它们将是字符串类型。 要处理数据,最好通过更改代码将字符串再次转换为浮点:

rounded_coord = [ float('%.2f' % elem) for elem in coord ]

相关问题 更多 >