मैं एक पाठ में शब्दों की प्रारंभ अनुक्रमणिका और अंत अनुक्रमणिका प्राप्त करना चाहता हूं: इनपुट के रूप में मेरे पास है:

text= "Hello, this red car is very beautiful and nice. Also, this car is green."
words_list= ["car" , "red","green"]

मैं पाठ में उन शब्दों की प्रारंभ अनुक्रमणिका और अंत अनुक्रमणिका प्राप्त करना चाहता हूं कृपया ..

0
Azizos DElaborde 4 जिंदा 2021, 00:11

2 जवाब

सबसे बढ़िया उत्तर
import re

text= "Hello, this red car is very beautiful and nice. Also, this car is green."
words_list= ["car" , "red","green"]

for word in words_list:
    for m in re.finditer(word,text):
        print (m.group(),m.start(), m.end())

आउटपुट:

car 16 19
car 59 62
red 12 15
green 66 71

या इसके साथ:

print ("key:",m.group(),"start:",m.start(),"end:",m.end())

आउटपुट:

key: car start: 16 end: 19
key: car start: 59 end: 62
key: red start: 12 end: 15
key: green start: 66 end: 71
0
Synthase 4 जिंदा 2021, 00:35

जबकि सिंथेज़ सही है, किसी भी मॉड्यूल को आयात किए बिना इसे करने का एक तरीका भी है। मैं इसे इस तरह से करूंगा:

text= "Hello, this red car is very beautiful and nice. Also, this car is green."
words_list= ["car" , "red","green"]


for word in words_list:
    if word in text:
        start_index = text.find(word)
        end_index = start_index + len(word)
        print(f"Word: {word}\nStart: {start_index}\nEnd: {end_index}\n")

यह आउटपुट:

Word: car
Start: 16
End: 19

Word: red
Start: 12
End: 15

Word: green
Start: 66
End: 71

कोड वास्तव में बहुत आसान है।

पंक्ति 1 और 2 हमारे पाठ और हमारे सरणी को परिभाषित करते हैं। लाइन 3 एक लूप के लिए शुरू करता है जो शब्द सूची में प्रत्येक तत्व के लिए लूप करता है। पंक्ति 4 यह देखने के लिए जाँच करती है कि शब्द पाठ में है या नहीं। अगर ऐसा है, तो लाइन 5 को स्टार्ट इंडेक्स मिलता है। लाइन 6 शब्द की लंबाई को प्रारंभ सूचकांक में जोड़कर अंत सूचकांक प्राप्त करता है। अंत में, लाइन 7 सूचना को एक साफ प्रारूप में प्रिंट करती है।

0
Dharman 4 जिंदा 2021, 00:22