2013-08-08 9 views
6

में किसी भी मान के बराबर है या नहीं, मैं पाइथन (और सामान्य रूप से प्रोग्रामिंग) के लिए नया हूं और मुझे अपने आप से इसका समाधान नहीं मिल रहा है।यह जांचना कि कोई मान किसी सरणी

letter = ["a", "b", "c"] 
word = raw_input('Enter a word:') 
first = word[0] 

if first == letter: 
    print "Yep" 
else: 
    print "Nope" 

लेकिन यह काम नहीं करता है, किसी को पता है कि यह कैसे होगा करता है: मैं जाँच करने के लिए एक स्ट्रिंग के पहले अक्षर को इस तरह एक सरणी में संग्रहीत कोई पत्र, कुछ के बराबर है करना चाहते हैं? अग्रिम में धन्यवाद!

उत्तर

9

आपको in ऑपरेटर का उपयोग करने की आवश्यकता है। if first in letter: का प्रयोग करें।

>>> letter = ["a", "b", "c"] 
>>> word = raw_input('Enter a word:') 
Enter a word:ant 
>>> first = word[0] 
>>> first in letter 
True 

और एक झूठी परीक्षण,

>>> word = raw_input('Enter a word:') 
Enter a word:python 
>>> first = word[0] 
>>> first in letter 
False 
+0

यह चाल है, धन्यवाद! – ThaRemo

+0

@ThRemo: खुशी हुई यह मदद की। :) –

4

in कीवर्ड का उपयोग का प्रयास करें:

if first in letter: 

अपने वर्तमान कोड पर, आप एक स्ट्रिंग चरित्र (first जो पहले अक्षर के बराबर होती है तुलना कर रहे हैं word में) एक सूची में। तो, मान लें कि मेरा इनपुट "a word" है। आपका कोड वास्तव में क्या कर रहा है:

if "a" == ["a", "b", "c"]: 

जो हमेशा झूठा होगा।

in कीवर्ड का उपयोग करते हुए हालांकि कर रही है:

if "a" in ["a", "b", "c"]: 

जो परीक्षण के लिए कि क्या "a"["a", "b", "c"] का एक सदस्य है और इस मामले में सच देता है।

+0

आह, व्याख्या करने के लिए धन्यवाद! – ThaRemo

3

संकेत आपके प्रश्न में है। any का प्रयोग करें। यह जनरेटर अभिव्यक्ति का उपयोग यह जांचने के लिए करता है कि यह सही है या गलत है।

any(first == c for c in letter) 
+0

यह प्रश्न डुप्लिकेट के रूप में चिह्नित किया जा सकता है, लेकिन यह एक त्वरित रीफ्रेशर की तलाश करते समय Google में पाया गया पहला परिणाम है। आईएमओ, यह सबसे अच्छा जवाब है। – theeastcoastwest

0

समस्या जैसा मैं इसे देखता हूं, यह है कि आप पूछ रहे हैं कि एक वर्ण एक सरणी के बराबर है। यह हमेशा झूठी वापसी करेगा।

'लेटर' में प्रत्येक आइटम के खिलाफ 'पहला' जांचने के लिए लूप का उपयोग करने का प्रयास करें। अगर आपको यह पता लगाने में मदद की ज़रूरत है कि यह कैसे करना है, तो मुझे बताएं।

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