蟒蛇範圍發生
回答
(min1 >= min2) and (max1 <= max2)
怎麼樣?
(假設min1, max1 = 4, 10
和min2, max2 = 3, 20
)
注意:您要比較端點沒有實際上使/評估的範圍,否則這將是可怕的效率低下。
編輯:這也適用;不是更好,而是更漂亮IMO:min2 <= min1 <= max1 <= max2
不應該是'min2 <= min1 <= max1 <= max2'? – 2010-07-13 11:44:33
@jellybean - 取決於你是否想要「嚴格」的子範圍;但我認爲這是更好的默認選項。改變。 – tzaman 2010-07-13 11:50:25
>>>min(xrange(4, 10)) > min(range(3, 20)) and max(xrange(4, 10)) < max(range(3, 20))
True
在'xrange'上使用'min'和'max'效率不高。改爲使用'[0]'和'[-1]'。 – 2010-07-13 11:30:19
@jleedev:聰明的筆記,但如果其中一個範圍是倒置的,也就是說,一個負數被用作步驟? ;-) – 2010-07-14 00:43:22
@Nas Banov:好點。您應該使用[0]和[-1]的最小值以及[0]和[1]的最大值。如何元。 – 2010-07-14 04:21:21
如果你被包含在另一組尋找一組,嘗試:
>>> set(xrange(4, 10)).issubset(set(range(3,20))
如果您希望比較端點,因爲您總是使用範圍來比較,您可以比較@ zoli2k等端點。
[編輯]編輯被要求。
我爲什麼會陷入低谷?至少留下令人討厭的評論! – 2010-07-14 02:14:38
首先,我認爲'set()'的使用效率很低,但現在我意識到這是唯一可以用step!= 1的範圍正確工作的解決方案,例如範圍(1,30,3)'或範圍(30,1,-1)'。 ++ – 2010-07-14 04:28:26
給定兩個範圍,你可以這樣做:
>>> a = range(10)
>>> b = range(5,15)
>>> c = range(15,25)
>>> any(x in a for x in b)
True
>>> any(x in a for x in c)
False
這是效率會低一點,如果有非常大的(100種+元素)的範圍進行檢查,這是更好a
的類型爲「設置」而不是列表。即:
>>> a = set(range(10))
設置沒有順序,但in
運算符要快得多。
- 1. 範圍類蟒蛇
- 2. 蟒蛇Jinja2範圍
- 3. 蟒蛇本地範圍
- 4. 蟒蛇進口和範圍
- 5. 蟒蛇3從範圍
- 6. 蟒蛇確定時間範圍重疊?
- 7. 蟒蛇for循環與範圍()
- 8. 初級指數超出範圍蟒蛇
- 9. 如何代表蟒蛇字典「範圍」
- 10. 如何從兩個範圍(蟒蛇)
- 11. 天超出範圍一個月蟒蛇
- 12. 蟒蛇範圍奇怪行爲
- 13. 組合總和蟒蛇遞歸範圍
- 14. 蟒蛇noobie範圍界定問題
- 15. 奇怪蟒蛇索引超出範圍
- 16. 蟒蛇陣列切片範圍與[:,:]
- 17. 蟒蛇中的線條匹配範圍(如sed範圍)
- 18. 獲取列表索引的範圍內,蟒蛇產生誤會
- 19. 蟒蛇,生成範圍內的隨機字符串01-12
- 20. 生成蟒蛇
- 21. 產生蟒蛇
- 22. 產生蟒蛇
- 23. 生成蟒蛇
- 24. 蟒蛇,Django的:蟒蛇,解耦發生未找到錯誤
- 25. 發現蟒蛇
- 26. 生成和蟒蛇
- 27. 蟒蛇2號相比沒有發生
- 28. 隨機字符串發生器蟒蛇
- 29. 周圍圖像matplotlib蟒蛇
- 30. 蟒:超出範圍
與此相關,xrange()對象如何比較?我的意思是你可以嘗試'xrange(4,10)
2010-07-14 00:38:49
另外,反轉範圍的情況如何 - 是xrange(3,20)'中的xrange(9,3,-1)?這兩個範圍都必須倒置或適合作爲集?如果其中一個範圍存在差距(使用了步驟),該怎麼辦? – 2010-07-14 00:41:51