对Python列表中的每个元素执行字符串操作
问题描述:
我有一个python elements
中的字符串元素列表,并希望编辑元素中的每个元素,所以我有一个新元素。看到下面的代码(它不工作,但你会明白):对Python列表中的每个元素执行字符串操作
for element in elements:
element = "%" + element + "%"
有没有办法做到这一点?
答
elements = ['%{0}%'.format(element) for element in elements]
答
您可以使用列表理解:
elements = ["%" + e + "%" for e in elements]
答
您可以使用列表理解:
elements = ["%{}%".format(element) for element in elements]
答
elements = map(lambda e : "%" + e + "%", elements)
答
基本上有两种方式,你可以做你想做的:要么编辑你有的列表,或者创建一个新的列表,其中包含所需的更改。目前所有的答案都显示了如何使用列表理解(或map()
)来构建新列表,我同意这可能是一条路。
另一种可能的方式是迭代列表并对其进行编辑。如果列表很大并且只需要更改一些,则可以这样做。
for i, e in enumerate(elements):
if want_to_change_this_element(e):
elements[i] = "%{}%".format(e)
但正如我所说,我建议你使用列表解析答案之一。
现在看到这种格式有几次了。有没有我可以学习的地方? – locoboy
@ cfarm54是的,[docs](http://docs.python.org/library/string.html#format-string-syntax)相当不错 – JBernardo
对不起.format片断,代码的语法括号。 – locoboy