0

我想获取一个字符串列表,这些字符串代表在 CLI 中输入的各个行,并将 '~$ ' 放在开头,因此当我显示它们时,它们更清楚地表明它们是命令行。我试过这个

command = # a multiline block of command lines
lines = command.split('\n')
for l in lines:
    l = '~$ ' + l
for l in lines: print l

但这会修改​​临时变量 l 我认为无需返回并更改列表中的实际值。如果我将 print 放在第一个循环中,它会使用正确的值打印,但是如果我这样做,就像显示的那样,则不会进行更改。提前感谢您的帮助。

4

2 回答 2

9

使用列表推导:

lines = ['~$ ' + line for line in command.split('\n')]

如果必须使用 for 循环,则可以使用enumerate()包含索引,以便替换列表中的各个项目:

for i, line in enumerate(lines):
    lines[i] = '~$ ' + line
于 2013-06-19T20:59:12.230 回答
1

函数式方式:

list(map(lambda s: '~$ ' + s, command.splitlines()))
于 2013-06-19T21:09:02.207 回答