See*_*und 5 python replace list
嗨我的问题与很久以前某个用户的帖子有关:
对于我的具体情况.我有一个这样的列表:
appl = ['1', 'a', 'a', '2', 'a']
Run Code Online (Sandbox Code Playgroud)
我想只用一个空的空格(它保存"a"的位置)来替换"a"的"单个未知"实例.我不确定如何只为一个角色做这件事.有人可以帮忙吗?提前致谢.
编辑:我应该提到我需要使用"索引"函数来首先找到"a",因为它是一个变化的变量.然后我需要代替字符的代码.
EDIT2:很多人都假设索引会是2,但我想指出的是该字符的索引是未知的.此外,"a"将在列表中出现约20次(将保留固定数字),但它们的位置将会发生变化.我想根据用户输入替换"a".这是我正在使用的实际列表:
track [2] = ["|","@","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"," ","|"]
Run Code Online (Sandbox Code Playgroud)
@是一个charachter,| 是一个边界,""是一个空的空间.用户输入输入以选择向右移动的数量,并显示一个新图像,显示@的新位置,并将@的旧位置替换为空格.列表的长度保持不变.这是我的问题的背景.
您可以使用索引和循环来实现此目标。这是它的一个小功能:
def replace_element(li, ch, num, repl):
last_found = 0
for _ in range(num):
last_found = li.index(ch, last_found+1)
li[li.index(ch, last_found)] = repl
Run Code Online (Sandbox Code Playgroud)
使用:
replace_element(appl, 'a', 2, ' ')
Run Code Online (Sandbox Code Playgroud)
这个方法特别好,因为当字符不在列表中时它会抛出以下错误:
ValueError: 'a' is not in list
Run Code Online (Sandbox Code Playgroud)