जांचें कि क्या आइटम किसी सरणी / सूची में है


203

यदि मुझे स्ट्रिंग्स का एक सरणी मिला है, तो क्या मैं यह देखने के लिए जांच कर सकता हूं कि क्या कोई स्ट्रिंग forलूप किए बिना सरणी में है ? विशेष रूप से, मैं एक ifबयान के भीतर इसे करने के लिए एक रास्ता तलाश रहा हूं , इसलिए कुछ इस तरह से:

if [check that item is in array]:

3
मुझे लगता है कि इस सवाल का जवाब यहां
तरुण एंडे

1
या यहाँ बेहतर: stackoverflow.com/questions/12934190/…
torina

जवाबों:


395

मान लें कि "सूची" का अर्थ है जहां आप "सरणी" कहते हैं, तो आप कर सकते हैं

if item in my_list:
    # whatever

यह किसी भी संग्रह के लिए काम करता है, न कि केवल सूचियों के लिए। शब्दकोशों के लिए, यह जाँचता है कि क्या दी गई कुंजी शब्दकोश में मौजूद है।


1
@jdi, और वह पाश पायथन में स्पष्ट रूप से एक कोडित की तुलना में बहुत तेज चलेगा, पढ़ने में आसान होने का उल्लेख नहीं करने के लिए।
मार्क रैनसम

17

मैं यह भी मानने वाला हूं कि जब आप "एरे" कहते हैं तो आपका मतलब "लिस्ट" होता है। स्वेन मार्नाच का समाधान अच्छा है। यदि आप सूची में बार-बार चेक करने जा रहे हैं, तो यह एक सेट या फ्रोज़ेनसेट में परिवर्तित करने के लायक हो सकता है, जो प्रत्येक चेक के लिए तेज़ हो सकता है। अपनी स्ट्रिंग की सूची को कहते हैं subjects:

subject_set = frozenset(subjects)
if query in subject_set:
    # whatever

3

एक लंबोदा फ़ंक्शन का उपयोग करें।

मान लीजिए कि आपके पास एक सरणी है:

nums = [0,1,5]

जांचें कि क्या 5 में है nums:

(len(filter (lambda x : x == 5, nums)) > 0)

यह समाधान अधिक मजबूत है। अब आप देख सकते हैं कि क्या कोई संख्या किसी निश्चित स्थिति को संतुष्ट करने वाली है nums

उदाहरण के लिए, जांचें कि क्या कोई संख्या जो 5 से अधिक या उसके बराबर है nums:

(len(filter (lambda x : x >= 5, nums)) > 0)

यह पायथन 2 के साथ काम करता है। Python 3.7 के साथ, आपको यह त्रुटि TypeError: object of type 'filter' has no len()
मिलेगी

1

आपको सरणियों के लिए .values ​​का उपयोग करना होगा। उदाहरण के लिए, आपके पास डेटाफ़्रेम है जिसका कॉलम नाम है, यानी [[नाम] का परीक्षण करें, आप कर सकते हैं

if name in test['Name'].values :
   print(name)

एक सामान्य सूची के लिए आपको उपयोग नहीं करना होगा


मुझे लगता है कि आपको .values ​​का उपयोग करने के लिए पंडों के डेटाफ़्रेम ऑब्जेक्ट की आवश्यकता है।
troymyname00

-3

आप किसी सरणी के लिए समान सिंटैक्स का उपयोग भी कर सकते हैं। उदाहरण के लिए, पंडों की श्रृंखला के भीतर खोज:

ser = pd.Series(['some', 'strings', 'to', 'query'])

if item in ser.values:
    # do stuff
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.