如何解决如何将行号添加到多行字符串
txt = """
some text
on several
lines
"""
如何打印此文本,使每行以行号开头?
解决方法
这可以通过结合split("\n")
,join(\n)
,enumerate
和列表理解来完成:
def insert_line_numbers(txt):
return "\n".join([f"{n+1:03d} {line}" for n,line in enumerate(txt.split("\n"))])
print(insert_line_numbers(txt))
它产生输出:
001
002 some text
003
004 on several
005
006 lines
007
,
我通常使用带有函数属性的正则表达式替换:
def repl(m):
repl.cnt+=1
return f'{repl.cnt:03d}: '
repl.cnt=0
print(re.sub(r'(?m)^',repl,txt))
打印:
001:
002: some text
003:
004: on several
005:
006: lines
007:
这可以让您轻松地对仅包含文本的行进行编号:
def repl(m):
if m.group(0).strip():
repl.cnt+=1
return f'{repl.cnt:03d}: {m.group(0)}'
else:
return '(blank)'
repl.cnt=0
print(re.sub(r'(?m)^.*$',txt))
打印:
(blank)
001: some text
(blank)
002: on several
(blank)
003: lines
(blank)
,
我是这样做的。只需将文本分成几行即可。添加行号。使用format
打印int
行号和string
。 .
有2个占位符,.
之后有一个空格
count = 1
txt = '''Text
on
several
lines'''
txt = txt.splitlines()
for t in txt:
print("{}{}{}{}".format(count,"."," ",t))
count += 1
输出
1. Text
2. on
3. several
4. lines
,
for n,i in enumerate(txt.rstrip().split('\n')):
print(n,i)
0
1 some text
2
3 on several
4
5 lines
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。