我有两个输入字符串。第一个字符串是带空格的单词。第二个字符串是不带空格的相同符号数的单词。任务是将第二个字符串按第一个字符串中的空格拆分成数组。
我试图使它与周期,但有问题的指标超出范围,我找不到其他解决方案。
a = str(input())
b = str(input())
b_word = str()
b_array = list()
for i in range(len(a)):
if a[i] != " ":
b_word += b[i]
else:
b_array += b_word
b_word = str()
print(b_array)
输入:
>>head eat
>>aaabbbb
输出:
Traceback (most recent call last):
File "main.py", line 29, in <module>
b_word += b[i]
IndexError: string index out of range
预期产出:
>> ["aaab", "bbb"]
先谢了!
6条答案
按热度按时间ymzxtsji1#
输出:
deyfvvtc2#
你可以这样做:
其思想是从
b
中取出a
上每个单词长度的连续子串。dojqjjoe3#
您可以不使用索引,而是迭代
a
的每个字符。如果字符不是空格,请将b
的下一个字符添加到b_word
。如果是空格,请将b_word
添加到b_array
得到
b_array = ['aaab', 'bbb']
注意,我将
b_word
更改为每次添加字符时.append
都会使用的 list,这样可以防止每次添加字符时重新创建整个字符串,然后在添加到b_array
之前使用"".join(b_word)
连接所有字符。pvcm50d14#
所以为了适应输入中任意数量的空格,它变得有点复杂,因为字母的索引会随着每个空格的增加而改变。所以为了收集字符串中的所有空格,我创建了这个循环,它将考虑多个空格,并随着初始单词中的每个新空格改变索引。
然后我们简单地将它们连接在一起,创建一个在预定索引处包含空格的新字符串。
希望这个有用。
ergxz8rk5#
代码
结果
7kqas0il6#
考虑基于迭代器和
itertools.islice
方法的解决方案: