gpt4 book ai didi

python - 在不使用 split() 的情况下拆分文本时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 10:14:41 24 4
gpt4 key购买 nike

splitText(text) where text is a string and return the list of the words by splitting the string text. See example below:

sampleText = "As Python's creator, I'd like to say a few words about its origins.”

splitText(sampleText)

['As', 'Python', 's', 'creator', 'I', 'd', 'like', 'to', 'say', 'a', 'few', 'words', 'about', 'its', 'origins']

您不得使用 str 类型的方法 split(),但是允许使用该类的其他方法。您不得使用 python 库,例如 string.py。

这是我的代码:

def split(text):
final_lst = ""
length = len(text)
for x in range(length):
if text[x].isalpha() == True:
final_lst = final_lst + text[x]
else:
final_lst = final_lst + ", "

final_len = len(final_lst)
for a in range(final_len):
if final_lst[:a] == " " or final_lst[:a] == "":
final_lst = "'" + final_lst[a]
if final_lst[a:] == " " or final_lst[a:] == ", ":
final_lst = final_lst[a] + "'"
elif final_lst[:a].isalpha() or final_lst[a:].isalpha():
final_lst[a]


print(final_lst)

split(sampleText)

当我运行它时,我得到了这个:

'A

我已经尝试了很多事情来尝试和解决。

最佳答案

首先,你的函数名是错误的。您有 split(text),练习特别要求 splitText(text)。如果您的类(class)是自动评分的,例如通过一个只加载您的代码并尝试运行 splitText() 的程序,您将失败。

接下来,这将是您了解字符串是 Python 中的可迭代对象的好时机。您不必使用索引 - 只需直接遍历字符即可。

for ch in text:

接下来,正如@Evert 指出的那样,您正在尝试构建一个列表,而不是一个字符串。所以使用正确的 Python 语法:

final_list = []

接下来,让我们考虑一下如何一次处理一个字符并完成这项工作。当您看到一个字符时,您可以确定它是否是字母字符。您还需要一条信息:您之前在做什么?

  • 如果你在一个“词”中,你得到“更多词”,你可以直接追加它。

  • 如果你在一个“单词”中,而你得到“不是一个单词”,那么你已经到了单词的末尾,应该将它添加到你的列表中。

  • 如果你在“not a word”中,得到“not a word”,你可以忽略它。

  • 如果你在“not a word”,你得到“word”,那就是一个新词的开始。

现在,你怎么知道你是否在一个词中?简单的。保留一个单词变量。

def splitText(text):
"""Split text on any non-alphabetic character, return list of words."""
final_list = []
word = ''

for ch in text:
if word: # Empty string is false!
if ch.isalpha():
word += ch
else:
final_list.append(word)
word = ''
else:
if ch.isalpha():
word += ch
else:
# still not alpha.
pass

# Handle end-of-text with word still going
if word:
final_list.append(word)

return final_list

sampleText = "As Python's creator, I'd like to say a few words about its origins."
print(splitText(sampleText))

输出是:

['As', 'Python', 's', 'creator', 'I', 'd', 'like', 'to', 'say', 'a', 'few', 'words', 'about', 'its', 'origins']

接下来,如果您坐下来盯着它看一会儿,您就会意识到您可以合并一些案例。它很好地归结为 - 尝试通过将外部移动到内部来将其翻转过来,看看你得到什么。

关于python - 在不使用 split() 的情况下拆分文本时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36166242/

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