所以我创建了这个代码,要求一个人输入一个句子。 之后他们在那句话中输入一个单词。 然后代码将输出单词所在的位置。
print("Type a sentence here")
sentence = input("")
sentence = sentence.split()
print("Now type a word in that sentence.")
word = input('')
if word in sentence:
print("I found",word,"in your sentence.")
else:
print("That word is not in your sentence.")
print(sentence.index(word))
我遇到的问题是,如果他们在句子中放入两个相同的单词,它只会输出第一个单词。请帮忙。
答案 0 :(得分:0)
您可以使用内置enumerate
将列表sentence
中的每个字与其对应的位置相关联。然后使用列表推导来获取列表中每个单词的出现次数。
print([i for i, j in enumerate(sentence) if j == word])
一些进一步的考虑因素是,您可能希望将您的句子转换为小写并删除标点符号,然后再尝试匹配您的单词,这样正确的标点符号和大小写就不会使您的匹配错过。此外,您不需要''
中的input()
才能使其有效 - 没有提示的空input()
就可以了。
答案 1 :(得分:0)
这个pb由这个脚本解决:
import re
print("Type a sentence here")
sentence = raw_input("")
print("Now type a word in that sentence.")
word = raw_input('')
words = re.sub("[^\w]", " ", sentence).split() # using re
position = 1
list_pos = []
for w in words :
if w == word:
print position
list_pos.append(position)
position += 1
if list_pos:
print("I found",word,"in your sentence.")
else:
print("That word is not in your sentence.")
print list_pos