2013-06-19 130 views
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我認爲不需要返回並更改列表中的實際值。如果將打印件放在第一個循環中,它將使用正確的值打印,但如果我按照所示方式進行打印,則不會進行更改。預先感謝您的幫助。

+0

你做任何嘗試自己解決這個問題? – RyPeck

回答

8

使用列表理解:

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

如果使用一個for循環,你會使用enumerate()包括一個索引,使您可以在列表取代單個項目:

for i, line in enumerate(lines): 
    lines[i] = '~$ ' + line 
+0

@mgilson:tsk,tsk,你還沒有聽說我繼續編輯一段時間嗎? :-P –

+0

注意這裏的新綁定,以防萬一這是一個全局變量或其他東西。 – Elazar

+1

我認爲我更喜歡這裏的切片分配(在循環中通過'enumerate'):'lines [:] = ['〜$'+ line for line in line]' – mgilson

1

功能的方法:

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