【问题标题】:how do i replace a string in a list我如何替换列表中的字符串
【发布时间】:2022-11-22 22:54:36
【问题描述】:

我正在尝试更改由 n 次 |_| 组成的名为 lista 的列表中的字符串,在一个函数中,我试图用“X”更改列表的一个特定位置,但没有任何效果

lista=["|_|","|_|","|_|","|_|","|_|","|_|","|_|","|_|","|_|","|_|"]

我只想把中间的改成|X|

我已经尝试过不同的方法,例如命令 replace 或 pop,然后插入一个新值但没有任何更改并且总是给我一个错误

【问题讨论】:

  • 请显示您尝试过的代码
  • 中间一个=>有列表元素。没有中间。
  • lista[len(lista)//2] = "|X|"? (对于偶数个元素,中间没有明确定义......)
  • 给你:lista=["|_|","|_|","|_|","|_|","|_|","|X|","|_|","|_|","|_|","|_|"]

标签: python string replace


【解决方案1】:

使用len(lista) // 2 获取中间索引。

如果有一个非偶数,// 2will 'round' it to the previous integer,所以9 --> 4

lista = [ "|_|","|_|","|_|","|_|","|_|","|_|","|_|","|_|","|_|","|_|" ]
middle = len(lista) // 2

lista[middle] = '|X|'

print(lista)
['|_|', '|_|', '|_|', '|_|', '|_|', '|X|', '|_|', '|_|', '|_|', '|_|']

Try it online

【讨论】:

  • OP 不想要 Python 中的解决方案吗?这是在 Javascript 中。
  • 谢谢@AdamJaamour,没看到。
【解决方案2】:
lista=["|_|","|_|","|_|","|_|","|_|","|_|","|_|","|_|","|_|","|_|"]
lista[ round(len(lista)/2)-1 ] = '|X|'

输出:

['|_|', '|_|', '|_|', '|_|', '|X|', '|_|', '|_|', '|_|', '|_|', '|_|']

使用-1因为索引从0开始

【讨论】:

  • 这在 python 3 (x/y -> float) 中不起作用。
猜你喜欢
  • 2022-01-02
  • 2017-03-25
  • 2021-05-22
  • 2021-12-19
  • 1970-01-01
  • 2020-03-18
  • 1970-01-01
  • 1970-01-01
  • 2012-11-26
相关资源
最近更新 更多