gpt4 book ai didi

python - 在 Python 3 中使用 for 循环查找字符串中的值

转载 作者:太空宇宙 更新时间:2023-11-03 15:43:53 25 4
gpt4 key购买 nike

我正在编写一段代码,提示用户输入一个句子,然后将其定义为 str1,然后提示用户输入定义为 str2 的单词。

例如:

    Please enter a sentence: i like to code in python and code things
Thank you, you entered: i like to code in python and code things
Please enter a word: code

我想使用 for 循环在 str1 中查找 str2 并打印该单词是否已找到/尚未找到,如果已找到,则打印 str2 的索引位置。

目前我有这个代码:

    str1Input = input("Please enter a sentence: ")
print("Thank you, you entered: ",str1Input)

str1 = str1Input.split()

str2 = input("Please enter a word: ")

for eachWord in str1:
if str2 in str1:
print("That word was found at index position", str1.index(str2)+1)
else:
print("Sorry that word was not found")

尽管结果似乎是为句子中的每个单词打印一次是否使用 str1 内单词的索引值找到该单词?例如,如果 str1 是“苹果、橙子、柠檬、酸橙、梨”,而我选择了“苹果”这个词,它会出现:

    That word was found at index position: 1
That word was found at index position: 1
That word was found at index position: 1
That word was found at index position: 1
That word was found at index position: 1

如果有人可以帮助我和其他人尝试类似的事情,那将非常有帮助!谢谢! :)

最佳答案

您的代码的问题是您对 str1 中的每个单词使用了 。这意味着您将遍历 str1 中的每个字符,而不是每个单词。要解决此问题,请使用 str1.split() 来分隔单词。您还应该在 for 循环之外添加 if str2 in str2 ;检查 str2 是否在 str1 中,如果是,则迭代 str1,而不是迭代 str1,并且每次都检查它是否包含 str2。由于一个单词可以在句子中多次出现,因此您将无法使用 str1.split().index() 查找所有位置,因为 index() 始终返回列表中项目的最低位置。

更简单的方法是使用列表理解:

positions=[x for x in range(len(str1.split()))if str1.split()[x]==str2]

这将包含 str1.split()str2 的所有索引。

最终代码:

positions=[x for x in range(len(str1.split()))if str1.split()[x]==str2]
if positions:
for position in positions:
print("That word was found at index position",position)
else:
print("Sorry that word was not found")

输入:

Please enter a sentence: i like to code in python and code things
Thank you, you entered: i like to code in python and code things
Please enter a word: code

输出:

That word was found at index position 3
That word was found at index position 7

关于python - 在 Python 3 中使用 for 循环查找字符串中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41924497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com