विधि # 1: एक भोले दृष्टिकोण का उपयोग करना (sum () + zip ()
)
हम फ़ंक्शन योग का उपयोग करके एक भोले दृष्टिकोण का उपयोग करके इस विशेष कार्य को पूरा कर सकते हैं और ज़िप, हम एक उपयोगिता फ़ंक्शन तैयार कर सकते हैं जो दोनों स्ट्रिंग्स की समानता की गणना कर सकता है।
# Python3 डेमो कोड
# लाइनों के बीच समानता
# भोले तरीके से (योग () + zip ())
# समानता की गणना के लिए यूटिलिटी फंक्शन
def
समान (str1, str2):
str1
=
str1 कोड> <कोड वर्ग =" कीवर्ड "> + कोड> <कोड वर्ग = "एस ट्रिंग"> `` कोड> <कोड वर्ग = "कीवर्ड"> * कोड> <कोड वर्ग = "सादा"> (कोड> <कोड वर्ग = "कार्य"> लेन कोड> <कोड वर्ग = "सादा"> (str2) कोड> <कोड सी lass = "कीवर्ड"> -
len
(str1))
str2 कोड> <कोड वर्ग = "कीवर्ड"> = कोड> <कोड वर्ग = "सादा"> str2 कोड> <कोड वर्ग = "कीवर्ड"> + कोड> < कोड वर्ग = "स्ट्रिंग"> `` कोड> <कोड वर्ग = "कीवर्ड"> * कोड> <कोड वर्ग = "सादा"> ( कोड> <कोड वर्ग = "कार्य"> लेन कोड> कोड> <कोड वर्ग = "सादा"> (str1) कोड> <कोड वर्ग = "कीवर्ड"> - कोड> <कोड वर्ग = "कार्य"> लेन कोड> <कोड वर्ग = "सादा" > (str2))
return
योग कोड> <कोड वर्ग = "सादा"> ( कोड> <कोड वर्ग = "मान"> 1 कोड> <कोड वर्ग = "कीवर्ड"> अगर कोड> <कोड वर्ग = "सादा "> मैं कोड> <कोड वर्ग = "कीवर्ड"> = कोड> <कोड वर्ग = "कीवर्ड"> = कोड> <कोड वर्ग = "सादा"> जे कोड> <कोड वर्ग = "कीवर्ड"> अन्य कोड> <कोड वर्ग = "मान"> 0 कोड>
कोड वर्ग s = "कीवर्ड"> के लिए i, j
in
zip कोड> कोड> <कोड वर्ग = "सादा"> (str1, str2)) कोड> <कोड वर्ग = "कीवर्ड"> / कोड> <कोड वर्ग = "कार्य"> फ्लोट कोड> <कोड वर्ग = "सादा"> (
len
(str1))
# प्रारंभिक स्ट्रिंग्स
test_string1
= कोड> <कोड क्लास ="स्ट्रिंग ">` गीक्सफोर्जेक्स` कोड>
<कोड क्लास = "सादा"> टेस्ट_स्ट्रिंग 2 कोड> <कोड क्लास = "कीवर्ड "> = कोड> <कोड वर्ग = "स्ट्रिंग"> `गीक्स4geeks` कोड>
<कोड वर्ग = "अपरिभाषित रिक्त स्थान"> कोड>
<कोड वर्ग =" टिप्पणियाँ "> # अनुभवहीन विधि का उपयोग करके (योग () + ज़िप ()) # लाइन-टू-लाइन समानता
<कोड क्लास = "पी लैन"> रेस कोड> <कोड क्लास ="कीवर्ड"> = समान (test_string1, test_string2)
# प्रिंट परिणाम
Print
(
"2 string के बीच समानता है:"
<कोड वर्ग = "कीवर्ड"> + कोड> <कोड वर्ग = "कार्य"> str कोड> <कोड वर्ग = "सादा"> (रेस)) कोड>
आउटपुट:
2 स्ट्रिंग्स के बीच समानता है: 0.38461538461538464
विधि # 2: का उपयोग करना SequenceMatcher.ratio ()
एक अंतर्निहित विधि है जो इस विशिष्ट कार्य को पूरा करने में मदद करती है, और इस विशिष्ट कार्य को करने की अनुशंसा की जाती है क्योंकि इसके लिए एक विशेष दृष्टिकोण की आवश्यकता नहीं होती है, लेकिन कार्य को अधिक कुशलता से पूरा करने के लिए अंतर्निर्मित निर्माणों का उपयोग करता है। / p>
<कोड क्लास = "comments"> # Python3 डेमो कोड # लाइन-टू-लाइन समानता
# SequenceMatcher.ratio का उपयोग कर ()
from
difflib
import कोड> code>
SequenceMatcher
# समानता की गणना के लिए यूटिलिटी फंक्शन
def
समान (str1, str2):
return कोड> कोड> <कोड वर्ग = "सादा"> अनुक्रम मैचर ( कोड> <कोड वर्ग = "रंग 1"> कोई नहीं कोड> <कोड वर्ग = "सादा">, str1, str2)। अनुपात () कोड>
# लाइन इनिशियलाइज़ेशन
test_string1
= कोड> <सह डी क्लास = "स्ट्रिंग"> `गीक्सफोर्जेक्स`
test_string2
=
`गीक्स`
# SequenceMatcher.ratio ( ) का उपयोग कर कोड> कोड>
<कोड वर्ग = "टिप्पणियां"> # लाइनों के बीच समानता कोड>
कोड वर्ग = "सादा"> रेस कोड> <कोड वर्ग = "कीवर्ड"> = समान (test_string1, test_string2)
# प्रिंट परिणाम कोड>
कोड वर्ग = "कार्य"> प्रिंट कोड> <कोड वर्ग = "सादा"> ( कोड> <कोड वर्ग = "स्ट्रिंग" > "2 स्ट्रिंग्स के बीच समानता है:" +
str
(res ))
आउटपुट:
2 स्ट्रिंग्स के बीच समानता है: 0.5555555555555556
Shop
Latest questions