如何解决如何在python中对齐字符串行?
有一种简单的方法可以在python中对齐字符串行? (该行将保存在列表中)
例如 s 是列表,因此转换-
s[0] = { part1{ c = FF000800 echo = 0 } } data { value = CCC } }
s[1] = { part1{ c = FF000800 echo = 88 } } data { value = C } }
成为:
s[0] = { part1{ c = FF000800 echo = 0 } } data { value = CCC } }
s[1] = { part1{ c = FF000800 echo = 88 } } data { value = C } }
解决方法
尝试一下,尽管它在特定情况下非常具体,但是它找到了最大数目的Cs,并使用ljust()
进行对齐:
s = ['{ part1{ c = FF000800 echo = 0 } } data { value = CCC } }',\
'{ part1{ c = FF000800 echo = 88 } } data { value = C } }' ]
maxlengthnums = 0
maxlengthletters = 0
for i in s:
groups_s = re.search(r'({ part1{ c = FF000800 echo = )(\d+)( } } data { value = )(C+)(.*)',i)
if len(groups_s.group(2)) > maxlengthnums:
maxlengthnums = len(groups_s.group(2))
if len(groups_s.group(4)) > maxlengthletters:
maxlengthletters = len(groups_s.group(4))
print(maxlengthnums,maxlengthletters)
for i in range(len(s)):
s[i] = re.sub(r'({ part1{ c = FF000800 echo = )(\d+)( } } data { value = )(C+)(.*)',lambda x: x.group(1) +\
x.group(2).ljust(maxlengthnums,' ') + x.group(3) + x.group(4).ljust(maxlengthletters,' ') + x.group(5),s[i])
for i in s:
print(i,'\n')
>>>
{ part1{ c = FF000800 echo = 0 } } data { value = CCC } }
{ part1{ c = FF000800 echo = 88 } } data { value = C } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。