Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何修改字符串列表中的字符串_Python_String - Fatal编程技术网

Python 如何修改字符串列表中的字符串

Python 如何修改字符串列表中的字符串,python,string,Python,String,我想获取一个字符串列表,这些字符串表示在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,我认为不会返回并更改列表中的实际值。如果我将打印放在第一个循环中

我想获取一个字符串列表,这些字符串表示在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,我认为不会返回并更改列表中的实际值。如果我将打印放在第一个循环中,它将以正确的值打印,但是如果我按照所示的方式进行,则不会进行更改。提前感谢您的帮助。

使用列表理解:

lines = ['~$ ' + line for line in command.split('\n')]
如果必须使用for循环,可以使用
enumerate()
包含索引,以便替换列表中的各个项目:

for i, line in enumerate(lines):
    lines[i] = '~$ ' + line
功能方式:

list(map(lambda s: '~$ ' + s, command.splitlines()))

@米吉尔森:啧啧,啧啧,你还没知道我一直在编辑一段时间吗-请注意这里的新绑定,以防这是一个全局变量或其他东西。我想我更喜欢这里的切片赋值(而不是使用循环枚举):
line[:]=['~$'+line for line in line]
@mgilson:如果列表引用了其他地方,当然可以。
enumerate
解决方案可能会有点误导-它看起来像是独立的值。您自己有没有尝试过解决这个问题?