我有一组四元组(“myTup”)和一个元组(“tupleToSearch”)。我需要把这个元组的所有实例搜索到每个四元组中tupleToSearch'将与每个四元组的前两个元素进行比较,如果匹配,则将报告匹配的四元组的最后两个元素。在
我用下面的代码来做同样的事情。在
myTup = set([('0994900', '50.2297', 'name1', '<4'),
('2176041', '24.2880', 'name2', 'POSITIVE'),
('2240663', '51.2510', 'name3', '25.0'),
('2240663', '51.2510', 'name4', '29.0'),
('2240663', '51.2560', 'name4', '29.0')])
tupToSearch = ('2240663', '51.2510')
[(x[2],x[3]) for x in myTup if tupToSearch == (x[0],x[1])]
我需要扩展这段代码,这样它就可以在范围上执行比较,而不是精确搜索。在
例如,给定tupleToSearch = ('2240663', '51.2510')
,我想找到第二个元素为>;=51.2510但小于(51.2510+偏移量)的四元组。这里‘offset’是一个常量。在
以上案例中的正确答案将报告最后三个四元数(每个四元中只有最后两个元素)。在
如何将第二个元素转换为数值以进行正确的比较。在
而且,我需要一个有效的方法来做这件事,因为我需要重复这一步骤将近十亿次。在
筛选出所需的元素,然后提取每个元素的块以创建结果。在
或者,用一个生成器在一个过程中完成整个过程(注意,与list comp不同,生成器将优雅地处理
^{pr2}$el[3]
不能转换为float的情况)。在请注意,由于这里使用的是浮点值,所以当浮点十进制值转换为浮点二进制值时,过滤过程将始终受到不精确性的影响。因此,您可能需要使用
Decimal
或在基值中构建偏移量。在好吧,有一个float function,可以用来写这段代码:
相关问题 更多 >
编程相关推荐