4つのセット('myTup')とタプル('tupleToSearch')があります。このタプルのすべてのインスタンスを各4つに検索する必要があります。'tupleToSearch'は、各4つの要素の最初の2つの要素と比較され、一致した場合は、一致した4つの要素の最後の2つの要素が報告されます。
私は同じことをするために次のコードを使用しています。
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')
2番目の要素が> = 51.2510であるが、(51.2510 +オフセット)よりも小さい4つ組を見つけたいと思います。ここで、「オフセット」は定数です。
上記の場合の正解は、最後の3つの4倍(これらのそれぞれの最後の2つの要素のみ)を報告します。
正しく比較するために2番目の要素を数値に変換する方法。
また、この手順をほぼ10億回繰り返す必要があるため、これを行うための効率的な方法が必要です。