2009-10-07 14 views
17

अजगर में मैं इस का उपयोग सूची a में तत्व अगर जाँच करने के लिए कर सकते हैं:अजगर में "अगर सूची में" के बराबर रूबी विधियां?

>>> a = range(10) 
>>> 5 in a 
True 
>>> 16 in a 
False 

इस रूबी में किया जा सकता है कैसे?

+0

बाद में, इसी तरह के सवाल, पायथन के मामले में शब्दों नहीं, अधिक जवाब के साथ: https://stackoverflow.com/questions/3343861/कैसे-करें-i-check-to-see-if-my-array-include-an-object –

उत्तर

26

उपयोग include?() विधि:

(1..10).include?(5) #=>true 
(1..10).include?(16) #=>false 

संपादित करें: (1..10) रूबी में Range है, मामले में आप किसी सरणी (सूची) हैं:

(1..10).to_a #=> [1,2,3,4,5,6,7,8,9,10] 
+0

तो यह इंडेक्स() विधियों की तरह है जो शून्य (झूठी) या अनुक्रमणिका (सत्य) लौटाता है? – noomz

+2

इंडेक्स केवल ऐरे पर काम करता है लेकिन रेंज पर नहीं। ! (1..10) .to_a.index (5) .nil? बराबर (1..10)। शामिल? (5)। जाहिर है, बाद में बेहतर है। – pierrotlefou

10

रेंज === विधि है , जो जांचता है कि तर्क सीमा का हिस्सा है या नहीं।

आप इस तरह इसका इस्तेमाल:

(1..10) === 5 #=> true 
(1..10) === 15 #=> false 

या के रूप में आप यह लिखा है:

a= (1..10) 
a === 5 #=> true 
a === 16 #=> false 

तुम्हें यकीन रेंज और परीक्षण किए जाने मूल्य के मूल्यों संगत प्रकार के होते हैं होना चाहिए, अन्यथा एक अपवाद फेंक दिया जाएगा।

(2.718..3.141) === 3 #=> true 
(23..42) === "foo" # raises exception 
  • यह हे (1) में किया के रूप में रेंज # === (मान) केवल मूल्य रेंज # पहले और रेंज # पिछले के साथ तुलना की जाती है।
  • यदि आप पहले रेंज # to_a को कॉल करते हैं और फिर ऐरे # शामिल हैं ?, यह ओ (एन) में चलता है, रेंज # to_a के रूप में, एन तत्वों के साथ एक सरणी भरने की आवश्यकता है, और ऐरे # शामिल हैं? एन तत्वों के माध्यम से फिर से खोजने की जरूरत है।

आप अंतर, खुले आईआरबी और प्रकार देखना चाहते हैं:

(1..10**9) === 5   #=> true 
(1..10**9).to_a.include?(5) # wait some time until your computer is out of ram and freezess 
+0

बहुत अच्छा जवाब! –

+0

यह केवल श्रेणियों पर लागू होता है, ओपी ने सूचियों के लिए कहा (और केवल सूची के उदाहरण के रूप में उपयोग किया जाता है) – truppo

+0

उन्होंने सूची सूची लिखी लेकिन उनके उदाहरण में एक रेंज का उपयोग किया, इसलिए मुझे लगता है कि वह एक रेंज चाहते हैं। ऐसा लगता है कि पाइथन में एक ऐसी श्रेणी बनाने के लिए कोई मूल तरीका नहीं है जो सूची नहीं है। (लेकिन मुझे इंगित करना चाहिए, मैं कोई अजगर विशेषज्ञ नहीं हूं, इसलिए मेरी धारणा गलत हो सकती है) – johannes

संबंधित मुद्दे