对Python列表中的每个元素执行字符串操作

loc*_*boy 50 python

我有一个python中的字符串元素列表,elements并希望编辑元素中的每个元素,所以我有一个新元素.请参阅下面的代码(它不起作用,但你会得到这个想法):

for element in elements:
    element = "%" + element + "%"
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

JBe*_*rdo 80

elements = ['%{0}%'.format(element) for element in elements]
Run Code Online (Sandbox Code Playgroud)

  • 你好我已经看过这种格式了几次.有一个地方我可以学到这个吗? (3认同)
  • 这不会将整个阵列复制到新位置吗?有没有办法就地修改它? (3认同)
  • 抱歉不是 .format 部分,而是将代码放在括号中的语法。 (2认同)

Ach*_*him 14

您可以使用列表理解:

elements = ["%" + e + "%" for e in elements]
Run Code Online (Sandbox Code Playgroud)


Zyg*_*ygD 8

Python 3.6+ 版本(f 字符串):

elements = [f'%{e}%' for e in elements]
Run Code Online (Sandbox Code Playgroud)


leo*_*luk 7

您可以使用列表推导:

elements = ["%{}%".format(element) for element in elements]
Run Code Online (Sandbox Code Playgroud)


ste*_*eha 5

基本上有两种方法可以完成您想要的操作:编辑您拥有的列表,或者创建一个包含您想要的更改的新列表。当前的所有答案都显示了如何使用列表理解(或 )map()来构建新列表,我同意这可能是要走的路。

另一种可能的方法是迭代列表并就地编辑它。如果列表很大并且您只需要更改一些内容,您可以这样做。

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

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