想象一下,我有元組的順序列表:停止列表選擇?
s = [(0,-1), (1,0), (2,-1), (3,0), (4,0), (5,-1), (6,0), (7,-1)]
給定參數X
,我要選擇所有具有第一元素等於或大於X
直到但不包括第一個元組的元組有-1作爲第二個元素。
例如,如果X = 3
,我想在列表中選擇[(3,0), (4,0)]
我有一個想法是: 獲取截止鍵與
E = min (x [0] for x in s if (x [0] >= X) and (x [1] == -1))
然後選擇與X
之間的鍵元素和E
:
R = [x for x in s if X <= x [0] < E]
這給了我想要的R,但它似乎是真實的效率低下,涉及兩個表掃描。我可以在for循環中執行它,丟棄鍵太小的元組,並且當我點擊第一個阻塞元組時,打破。但是對於像列表選擇那樣的狗來說。
是否有超高效的python-esque(2.7)方法?
你的答案優雅的滿足我的每一個問題。我高興地哭泣。 –