Python 右键多行字符串
从中找到此代码段后Python 右键多行字符串,python,string,python-2.7,padding,Python,String,Python 2.7,Padding,从中找到此代码段后 存在max-函数,消除了第一个循环。和join可用于再次将行粘在一起: def r_pad_string(s): lines = s.splitlines() width = max(len(l) for l in lines) return "\n".join( line.ljust(width, ".") for line in lines ) 一般说明:每级缩进应为4个空格,变量名称应为空。可以直接在行上
存在
max
-函数,消除了第一个循环。和join
可用于再次将行粘在一起:
def r_pad_string(s):
lines = s.splitlines()
width = max(len(l) for l in lines)
return "\n".join(
line.ljust(width, ".")
for line in lines
)
一般说明:每级缩进应为4个空格,变量名称应为空。可以直接在行上进行迭代,而不是借助于索引。只有在真正有助于可读性的情况下才使用空行。listy
的元素已经是字符串,因此不需要反复将它们转换为字符串
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
所以它没有那么快,但是对眼睛来说容易多了
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