इनपुट - मान लें कि आपके पास एक श्रृंखला है,
0 fruits!! 1 *cakes* 2 $nuts 3 #drinks dtype: object
इनपुट - एक श्रृंखला में एक से अधिक विशेष वर्णों के लिए कुल संख्या का परिणाम 2 है।
आइए इस प्रश्न के विभिन्न समाधान खोजने का प्रयास करें।
समाधान 1
इसे हल करने के लिए, हम नीचे दिए गए चरणों का पालन करेंगे -
-
एक श्रृंखला परिभाषित करें
-
मूल्यों की विशेष वर्ण सूची बनाएं।
-
विशेष वर्ण का प्रारंभिक मान और कुल विशेष चार गणना मान 0 के रूप में सेट करें।
-
लूप के लिए बनाएं और श्रृंखला में सभी मानों को एक-एक करके एक्सेस करें और विशेष वर्ण के आधार पर मान की तुलना करने के लिए एक if कंडीशन बनाएं -
for i in data: chars_count = 0 for j in list(i): if j in special_char: chars_count = chars_count+1
-
if कंडीशन सेट करें और काउंट वैल्यू चेक करें। अगर गिनती> 1 है, तो कुल गिनती प्रिंट करें।
इसे नीचे परिभाषित किया गया है -
if(chars_count>1): total_count = total_count+1 print(total_count)
समाधान 2
वैकल्पिक रूप से, हम कुल संख्या ज्ञात करने के लिए रेगुलर एक्सप्रेशन और लैम्ब्डा फ़ंक्शन फ़िल्टर विधि का उपयोग कर सकते हैं।
इसे हल करने के लिए, हम नीचे दिए गए चरणों का पालन करेंगे -
-
एक श्रृंखला परिभाषित करें
-
विशेष चार () के आधार पर इनपुट को मान्य करने के लिए लैम्ब्डा फ़िल्टर विधि लागू करें।
-
ज्ञात कीजिए कि लंबाई एक से अधिक है। इसे नीचे परिभाषित किया गया है -
l=["fruits!!","*cakes*","$nuts","#drinks"] data=pd.Series(filter(lambda x:1<len(re.findall(r"\W",x)),l))
उदाहरण
आइए इसे बेहतर ढंग से समझने के लिए कार्यान्वयन देखें -
import pandas as pd import string l = ["Fruits!!","*Cakes*","$Nuts","#Drinks"] data = pd.Series(l) chars=string.punctuation special_char=list(chars) total_count = 0 for i in data: chars_count = 0 for j in list(i): if j in special_char: chars_count = chars_count+1 if(chars_count>1): total_count = total_count+1 print(total_count)
समाधान 3
उदाहरण
import pandas as pd import re l=["fruits!!","*cakes*","$nuts","#drinks"] data=pd.Series(filter(lambda x:1<len(re.findall(r"\W",x)),l)) print("count:",len(data))
आउटपुट
उपरोक्त कार्यक्रम का आउटपुट इस प्रकार है -
2