Python:如何检查数组中的一组坐标是否存在于列表中的多个字典的列表中?
如果这听起来非常混乱,很抱歉,但基本上我有一个两列数组存储二维坐标列表:Python:如何检查数组中的一组坐标是否存在于列表中的多个字典的列表中?,python,Python,如果这听起来非常混乱,很抱歉,但基本上我有一个两列数组存储二维坐标列表: array([[ 0.31730234, 0.73662906], [ 0.54488759, 0.09462212], [ 0.07500703, 0.36148366], [ 0.33200281, 0.04550565], [ 0.3420866 , 0.9425797 ], [ 0.36115391, 0.16670599], [ 0.95586938, 0.525
array([[ 0.31730234, 0.73662906],
[ 0.54488759, 0.09462212],
[ 0.07500703, 0.36148366],
[ 0.33200281, 0.04550565],
[ 0.3420866 , 0.9425797 ],
[ 0.36115391, 0.16670599],
[ 0.95586938, 0.52599398],
[ 0.13707665, 0.6574444 ],
[ 0.77766138, 0.56875582],
[ 0.79618595, 0.7139309 ]])
我有一个字典列表,在每个字典中,在一个叫做“坐标”的键下,有一个这些坐标的随机组合列表
如果给定了一组随机坐标,如何生成一个函数来检查这些坐标是否存在于任何字典中,然后返回字典的索引
显然,参数是字典列表(因为我实际上有多个字典列表)和数组中的坐标id。每次我尝试使用任何函数或枚举或查找时,都会出现语法错误,例如:
def whichcluster(list,coordinate_id):
.....: for elem in list:
.....: if any(x in elem['coordinates'] for coordinate_id):
.....: return list.index(elem)
.....: else:
.....: return False
为什么不起作用?你的理解写错了,应该是:
if any(x in elem['coordinates'] for x in coordinate_id):
...
而
list
是一个类型名,不要将其用作变量名。如果您的理解写错了,它应该是:
if any(x in elem['coordinates'] for x in coordinate_id):
...
而
list
是一个类型名,不要将其用作变量名。代码有四个问题
- 您的生成器表达式馈送到任何对象都是错误的。它应该是
any(对于坐标id中的x,元素中的x['coordinates'])
- 你不知道;不需要使用list.index(elem)来获取索引,而是在循环时使用enumerate函数获取带有元素`for index,elem in enumerate(list)的索引:
- 在循环中使用return
会在第一次点击时过早返回。您可能会错过任何后续比赛。您需要创建一个生成器return list.index(elem)
- 唐;t不要对变量名使用保留/内置名称,例如,不要使用
,而是使用更合适的名称,如列表
协调列表
- 您的生成器表达式馈送到任何对象都是错误的。它应该是
any(对于坐标id中的x,元素中的x['coordinates'])
- 你不知道;不需要使用list.index(elem)来获取索引,而是在循环时使用enumerate函数获取带有元素`for index,elem in enumerate(list)的索引:
- 在循环中使用return
会在第一次点击时过早返回。您可能会错过任何后续比赛。您需要创建一个生成器return list.index(elem)
- 唐;t不要对变量名使用保留/内置名称,例如,不要使用
,而是使用更合适的名称,如列表
协调列表
list
作为变量名。请您进一步解释一下您的意图。这可能有助于找出最有效的解决方案。您只想返回第一个匹配集群的索引还是全部?不要使用list
作为变量名。请您进一步解释一下您的意图。这可能有助于找出最有效的解决方案。您只希望返回第一个匹配群集的索引还是全部?