簡體   English   中英

基於比較查找元組列表的索引

[英]Finding the indices of the list of tuples based on comparison

我有一個元組列表。 我想在列表中找到元組的第二個元素小於其他元素的任何第一個元素的索引。 列表中的所有元組都具有第二個元素大於第一個元素的屬性。 這是我當前的代碼。 但它的效率非常低,因為它有兩個 for 循環。

b = [(12.4967,12.6328), (2.7100, 13.5921), (2.3388, 12.0418), (0.9856, 13.8039), (5.2956, 12.2421), (3.9076, 13.0671), (6.3806, 11.6), (3.7320, 12.1615), (10.6809, 14.3437)]

c = set()
for t in range(len(b)):
    for a in b:
        if b[t][1] <= a[0]:
            c.add(t)

聽起來您應該能夠首先找到最大值(因為您只需要比較最大值,因為第二個元素更大)並獲得所有小於它的元素。

cutoff = max(x[0] for x in b)

c = set()
for i, x in enumerate(b):
    if x[1] <= cutoff:
        c.add(i)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM