gpt4 book ai didi

python - 向右填充多行字符串

转载 作者:行者123 更新时间:2023-11-30 22:55:21 25 4
gpt4 key购买 nike

here 找到此代码片段后

'{0: <16}'.format('Hi')

我能够正确填充字符串 - 这就是我所追求的。我已经编写了一个函数来处理多行字符串,但我感觉有一种更快、更 Pythonic 的方法:字符串用“.”填充。只是作为一个例子。

#!/usr/bin/python

def r_pad_string (s):

listy = s.splitlines()

w = 0
ss = ""

for i in range(0, len(listy)):
l = len(str(listy[i]))
if l > w:
w = l

for i in range(0, len(listy)):
pad = str(listy[i]).ljust(w, ".")
ss += pad + "\n"

return ss


myStr1 = " ######\n" \
" ########\n" \
"## ## ##\n" \
"## ### ###\n" \
"##########\n" \
"##########\n" \
"## ## ##\n" \
"# # #"

myStr2 = """Spoons
are
great!!!"""

print r_pad_string(myStr1)
print r_pad_string(myStr2)

最佳答案

def r_pad_string2(s, fillchar='.'):                    
lines = s.splitlines()
max_len = max(len(l) for l in lines)
return '\n'.join(l.ljust(max_len, fillchar) for l in lines)

时间:

In [12]: %timeit r_pad_string(myStr1)
100000 loops, best of 3: 5.38 µs per loop

In [13]: %timeit r_pad_string2(myStr1)
100000 loops, best of 3: 3.43 µs per loop

In [14]: %timeit r_pad_string(myStr2)
100000 loops, best of 3: 2.48 µs per loop

In [15]: %timeit r_pad_string2(myStr2)
1000000 loops, best of 3: 1.9 µs per loop

所以速度并没有那么快,但是眼睛更舒服。

关于python - 向右填充多行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37460100/

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