2011-08-19 100 views
28

我有一個python elements中的字符串元素列表,並希望編輯元素中的每個元素,所以我有一個新元素。看到下面的代碼(它不工作,但你會明白):對Python列表中的每個元素執行字符串操作

for element in elements: 
    element = "%" + element + "%" 

有沒有辦法做到這一點?

回答

52
elements = ['%{0}%'.format(element) for element in elements] 
+2

現在看到這種格式有幾次了。有沒有我可以學習的地方? – locoboy

+0

@ cfarm54是的,[docs](http://docs.python.org/library/string.html#format-string-syntax)相當不錯 – JBernardo

+1

對不起.format片斷,代碼的語法括號。 – locoboy

11

您可以使用列表理解:

elements = ["%" + e + "%" for e in elements] 
5

您可以使用列表理解:

elements = ["%{}%".format(element) for element in elements] 
1
elements = map(lambda e : "%" + e + "%", elements) 
1

基本上有兩種方式,你可以做你想做的:要麼編輯你有的列表,或者創建一個新的列表,其中包含所需的更改。目前所有的答案都顯示瞭如何使用列表理解(或map())來構建新列表,我同意這可能是一條路。

另一種可能的方式是迭代列表並對其進行編輯。如果列表很大並且只需要更改一些,則可以這樣做。

for i, e in enumerate(elements): 
    if want_to_change_this_element(e): 
     elements[i] = "%{}%".format(e) 

但正如我所說,我建議你使用列表解析答案之一。

相關問題