2011-08-19 103 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) 

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

相关问题