小儿无赖 发表于 2023-8-5 20:30:29

这个题没看懂,就是对于两个单词不知道如何操作,求教谢谢

"""单词在字符串中的位置"""
#给定一个字符串 text 和字符串列表 words
#返回 words 中每个单词在 text 中的位置(要求最终的位置从小到大进行排序)
#示例如下

#text:"I love FishC and FishC love me"
#words:"FishC"
#输出:[, ]

#text:"I love FishC and FishC love me"
#words:"FishC love"
#输出:[, , , ]

#text:"FCFCF"
#words:"FCF FC"输出:[, , , ]
#输出:[, , , ]

text = input("请输入text的内容:")
words = input("请输入words的内容:")
x = []

对于两个单词的情况不是很清楚,怎么把它分别提取出来


isdkz 发表于 2023-8-5 20:30:41

根据题目的要求,我们需要将字符串text中的每个单词与字符串列表words中的每个单词进行比较,并返回它们在text中的位置。

首先,我们可以使用split()函数将text字符串分割成单词列表。然后,我们可以遍历words列表中的每个单词,并使用find()函数找到该单词在text中的位置。

以下是解决这个问题的代码示例:

text = input("请输入text的内容:")
words = input("请输入words的内容:")
x = []

# 将text字符串分割成单词列表
text_words = text.split()

# 遍历words列表中的每个单词
for word in words.split():
    positions = []
    # 在text中查找该单词的位置
    for i, text_word in enumerate(text_words):
      if text_word == word:
            positions.append()
    x.extend(positions)

# 按照位置的起始位置进行排序
x.sort()

print(x)


希望能帮助到你!如果还有其他问题,请随时提问。

学习编程中的Ben 发表于 2023-8-5 20:30:49

问题:单词在字符串中的位置

给定一个字符串text和字符串列表words,要求返回words中每个单词在text中的位置(最终的位置按从小到大进行排序)。

示例说明:
- text:"I love FishC and FishC love me"
- words:"FishC"
- 输出:[, ]

- text:"I love FishC and FishC love me"
- words:"FishC love"
- 输出:[, , , ]

- text:"FCFCF"
- words:"FCF FC"
- 输出:[, , , ]

下面是修改后的代码:

text = input("请输入text的内容:")
words = input("请输入words的内容:")
x = []

for word in words.split():
    start = 0
    result = []
    while start < len(text):
      index = text.find(word, start)
      if index == -1:
            break
      result.append()
      start = index + 1
    x.extend(result)

x.sort()
print(x)


在这段代码中,我们首先使用split()函数将字符串words拆分成单词列表。然后,我们遍历每个单词,并使用find()函数在text中查找该单词的起始位置。如果找到了匹配的位置,我们将其保存在result列表中。然后,将result添加到x列表中。最后,我们对x进行排序,并打印输出结果。

希望这个回答能够帮到你!如果还有其他问题,请随时提问。

如果回答对你有帮助,请给我一个最佳答案!{:10_254:}{:10_254:}{:10_254:}

Mike_python小 发表于 2023-8-5 20:30:49

问题:单词在字符串中的位置

给定一个字符串text和字符串列表words,要求找出列表中每个单词在字符串中的位置,并按照位置从小到大排序。下面是几个示例:

示例1:

text = "I love FishC and FishC love me"
words = ["FishC"]
输出:[, ]


示例2:

text = "I love FishC and FishC love me"
words = ["FishC love"]
输出:[, , , ]


示例3:

text = "FCFCF"
words = ["FCF", "FC"]
输出:[, , , ]


下面是一个解决这个问题的示例代码:


text = input("请输入text的内容:")
words = input("请输入words的内容:").split()

result = []
for word in words:
    start = 0
    word_positions = []
    while True:
      index = text.find(word, start)
      if index == -1:
            break
      word_positions.append()
      start = index + 1
    result.extend(word_positions)

result.sort()
print(result)


在这段代码中,我们首先通过input()函数获取用户输入的text和words。然后,我们创建一个空的列表result用于存储单词在字符串中的位置。

对于每个单词,我们使用start变量记录起始位置,然后使用str.find()函数在字符串中查找该单词。如果找到了,我们将找到的位置范围添加到word_positions列表中,并更新start为下一个搜索起点。

最后,我们对result列表进行排序,然后打印出结果。

希望这个回答对你有帮助!如果还有其他问题,请随时提问。

如果回答对你有帮助,请给我一个最佳答案!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

小儿无赖 发表于 2023-8-5 20:31:28

isdkz 发表于 2023-8-5 20:30
根据题目的要求,我们需要将字符串text中的每个单词与字符串列表words中的每个单词进行比较,并返回它们在t ...

还没学到split函数,可以不用它来做吗?

学习编程中的Ben 发表于 2023-8-5 20:36:25

本帖最后由 学习编程中的Ben 于 2023-8-5 20:49 编辑

小儿无赖 发表于 2023-8-5 20:31
还没学到split函数,可以不用它来做吗?

当然可以,您可以使用其他方法来解决这个问题。一个替代的方法是使用正则表达式来匹配单词。

以下是使用正则表达式实现的代码示例:
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 == word:
            positions.append()
    x.extend(positions)

# 按照位置的起始位置进行排序
x.sort()

print(x)
在上述代码中,我们使用正则表达式r"\b\w+\b"来匹配text中的每个单词,并存储在text_words列表中。然后,我们遍历words列表中的每个单词,并在text_words列表中查找该单词的位置。最后,按照位置的起始位置进行排序并打印结果。

请注意,为了使用正则表达式,您需要导入Python的re库。

希望这个解决方案对您有帮助!如果还有其他问题,请随时提问。

学习编程中的Ben 发表于 2023-8-5 20:49:23

给个最佳答案呗!求你了!!!{:10_254:}

Mike_python小 发表于 2023-8-6 08:26:00

text = input("请输入text的内容:")
words = input("请输入words的内容:")
x = []

text_words = []
current_word = ""
for char in text:
    if char.isalpha():
      current_word += char.lower()
    elif current_word != "":
      text_words.append(current_word)
      current_word = ""
if current_word != "":
    text_words.append(current_word)

word_list = []
current_word = ""
for char in words:
    if char.isalpha() or char == "'":
      current_word += char.lower()
    elif current_word != "":
      word_list.append(current_word)
      current_word = ""
if current_word != "":
    word_list.append(current_word)

for word in word_list:
    positions = []
    for i, text_word in enumerate(text_words):
      if text_word == word:
            positions.append()
    x.extend(positions)

x.sort()

print(x)


没用split,给个最佳答案呗
页: [1]
查看完整版本: 这个题没看懂,就是对于两个单词不知道如何操作,求教谢谢