Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中拆分字符串而不使用.split函数的方法_Python_String_Split - Fatal编程技术网

在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用于解释这将错过最后一个单词(假设字符串不以空格结尾)。。。需要添加另一个
单词。在循环后追加(当前单词)