|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- """单词在字符串中的位置"""
- #给定一个字符串 text 和字符串列表 words
- #返回 words 中每个单词在 text 中的位置(要求最终的位置从小到大进行排序)
- #示例如下
- #text:"I love FishC and FishC love me"
- #words:"FishC"
- #输出:[[7, 11], [17, 21]]
- #text:"I love FishC and FishC love me"
- #words:"FishC love"
- #输出:[[2, 5], [7, 11], [17, 21], [23, 26]]
- #text:"FCFCF"
- #words:"FCF FC"输出:[[0, 1], [0, 2], [2, 3], [2, 4]]
- #输出:[[0, 1], [0, 2], [2, 3], [2, 4]]
- text = input("请输入text的内容:")
- words = input("请输入words的内容:")
- x = []
复制代码 对于两个单词的情况不是很清楚,怎么把它分别提取出来
本帖最后由 学习编程中的Ben 于 2023-8-5 20:49 编辑
当然可以,您可以使用其他方法来解决这个问题。一个替代的方法是使用正则表达式来匹配单词。
以下是使用正则表达式实现的代码示例:
- import re
- text = input("请输入text的内容:")
- words = input("请输入words的内容:")
- x = []
- # 使用正则表达式匹配单词
- word_pattern = r"\b\w+\b"
- text_words = re.findall(word_pattern, text)
- # 遍历words列表中的每个单词
- for word in words.split():
- positions = []
- # 在text中查找该单词的位置
- for i in range(len(text_words)):
- if text_words[i] == word:
- positions.append([i, i + len(word) - 1])
- x.extend(positions)
- # 按照位置的起始位置进行排序
- x.sort()
- print(x)
复制代码
在上述代码中,我们使用正则表达式 r"\b\w+\b"来匹配text中的每个单词,并存储在text_words列表中。然后,我们遍历words列表中的每个单词,并在text_words列表中查找该单词的位置。最后,按照位置的起始位置进行排序并打印结果。
请注意,为了使用正则表达式,您需要导入Python的re库。
希望这个解决方案对您有帮助!如果还有其他问题,请随时提问。
|
|