在Python中拆分字符串而不使用.split函数的方法
这是我的密码:在Python中拆分字符串而不使用.split函数的方法,python,string,split,Python,String,Split,这是我的密码: words = firstsentence.split(' ') 第一句是用户输入。变量“words”以逐字分隔的形式存储用户输入 例如,如果第一句是“我喜欢做编码”,则.split会将其保存为变量单词中的一个分隔单词列表 我想知道的是,有没有什么方法可以完全实现.split的功能,但不涉及任何内置python函数,如.split 它必须分离单词,然后将分离的单词存储在变量中 words = [] current_word = "" for char in
words = firstsentence.split(' ')
第一句
是用户输入。变量“words”以逐字分隔的形式存储用户输入
例如,如果第一句
是“我喜欢做编码”,则.split
会将其保存为变量单词
中的一个分隔单词列表
我想知道的是,有没有什么方法可以完全实现.split
的功能,但不涉及任何内置python函数,如.split
它必须分离单词,然后将分离的单词存储在变量中
words = []
current_word = ""
for char in firstsentence:
if char == " ":
words.append(current_word)
current_word = ""
else:
current_word += char
words.append(current_word)
这将迭代所有字符,如果当前字符是普通字符,则将其附加到current\u word
。但是,如果当前字符是空格,它会将该单词附加到单词列表中并重置临时单词
编辑:多亏了Tomerikoo,我通过添加最后一行修复了该示例。很难知道OP中什么是内置函数,但这里有一个使用切片的解决方案:
start = 0
words = []
for ix, x in enumerate(firstsentence):
if x == ' ':
words.append(firstsentence[start:ix])
start = ix + 1
if start < len(firstsentence):
words.append(firstsentence[start:])
start=0
单词=[]
对于枚举中的ix,x(第一句话):
如果x='':
words.append(第一句[开始:ix])
开始=ix+1
如果开始
必须是作业(家庭作业)。否则,OP为什么要重新发明轮子?还有什么是“禁止的”?串联?循环?顺便说一句,你的标题是:“使用.split函数在Python中拆分字符串的方法”,这是相反的。请注意你的提问。@Jean-Françoisfare-这是一项任务,但我不是因为你的想法而提问的。我想如果我显示一种拆分字符串的方法,而不使用内置函数,我会得到更多的分数,顺便说一句,这只是我正在制作的程序的一小部分,还有更多,所以不要认为我的作业依赖于此或任何东西。:-)(并非粗鲁,真诚地希望你得到我问的问题),thx只是注意到了这一点now@StreetSoldier相信我,你会因为避免使用这样的内置设备而得到更低的分数。@StreetSoldier除非你的老师禁止你使用它,否则你应该使用它。时期通过无数行代码或正则表达式查看试图解决此问题的答案。您可以在作业中使用split
,并在旁边显示手动完成作业的方法。那会更好@UrielEli@Jean谢谢大家的建议不要投反对票:它可以回答问题。但不要在家里这样做:附加到字符串的性能不佳(即使是在+=
中)。你可以创建一个字符列表,然后使用str.join
,但是,如果你不能使用str.split
,那么你就不能使用str.join
:)@Jean Françoisfare你说的表现不佳是什么意思?那么,如果允许我使用str.join(我可以使用任何我想要的),如果允许你使用join
你可以使用split
:),那么代码会是什么样子呢?这对回答者来说更像是一个评论。我的意思是,在将字符串附加到字符串时,速度一般。这就是为什么使用join
(除其他外)和空的连接字符串。您可以使用它从字符列表中重新创建一个字符串。@Jean-Françoisfare Thx用于解释这将错过最后一个单词(假设字符串不以空格结尾)。。。需要添加另一个单词。在循环后追加(当前单词)