gpt4 book ai didi

python - 从左到右均匀地在单词之间添加空格,直到一定长度

转载 作者:行者123 更新时间:2023-12-05 02:26:13 24 4
gpt4 key购买 nike

接收到一个有2个或2个以上单词且长度一定的字符串,我需要在单词之间统一插入空格,从左到右在单词之间添加额外的空格。假设我收到“Hello I'm John”且长度为 17,它应该返回:'Hello I'm John

我尝试了很多不同的方式,但我无法做到从左到右的要求。

这是我现在拥有的:

 if ' ' in string:
final_string=''
string=string.split()
for i in range(len(string)):
if string[i]==string[-1]:
final_string+=string[i]
else:
final_string+=string[i]+' '
print(final_string)

输出:你好,我是约翰

这给我的长度比我想要的要长...

最佳答案

大概是这样的吧?

words = cad_carateres.split()
total_nb_of_spaces_to_add = total_string_length - len(cad_carateres)

nb_of_spaces_to_add_list = [total_nb_of_spaces_to_add // (len(words) - 1)
+ int(i < (total_nb_of_spaces_to_add % (len(words) - 1)))
for i in range(len(words) - 1)] + [0]

result = ' '.join([w + ' ' * (nb_of_spaces_to_add)
for w, nb_of_spaces_to_add in zip(words, nb_of_spaces_to_add_list)])

第一行 - 你 split你的台词变成文字

第二行 - 我们总共需要添加多少个空格。

第三行 - 假设我们需要添加 20 个空格,并且我们总共有 7 个单词(因此,我们添加额外空格的位置有 6 个空格)。让我们在这些间隙中添加 [3, 3, 2, 2, 2, 2] 个空格,显然在最后一个单词后添加 0 个空格。 nb_of_spaces_to_add_list 将包含 [3, 3, 2, 2, 2, 2, 0] 这样的列表

最后一行 - join将填充的(带有空格,它们的编号来自 nb_of_spaces_to_add_list)单词放入字符串中 - 这就是您的结果!我也用 zip函数将 2 个一维列表(要添加的单词和空格数)转换为二维列表,这允许我使用 list comprehension .

关于python - 从左到右均匀地在单词之间添加空格,直到一定长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74004525/

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