list = ['_ ','_ ','_ ','_ ','_ ']
index = [1,4]
letter = 'm'
那么有没有可以使用索引和字母将列表1和4更改为'm'?
感谢您的帮助!
答案 0 :(得分:2)
你走了:
for i in index:
list[i] = letter
答案 1 :(得分:2)
许多解决方案使用
loop
尝试相同的旧方法:
这是不同的方法:
没有任何循环:
list_1 = ['_ ','_ ','_ ','_ ','_']
index = [1,4]
letter = 'm'
list(map(lambda x:(list_1.__setitem__(x,letter)),index))
print(list_1)
输出:
['_ ', 'm', '_ ', '_ ', 'm']
一些饼干:
import operator
list(map(lambda x:operator.setitem(list_1, x, letter),index))
print(list_1)
输出:
['_ ', 'm', '_ ', '_ ', 'm']
答案 2 :(得分:1)
是的,您尝试实现的目标称为花式索引 - 使用索引列表。但是,这对于Numpy数组是可能的,而不是简单的python列表。所以,一个可能的解决方案是:
import numpy as np
mylist = ['_ ','_ ','_ ','_ ','_ ']
index = [1,4]
letter = 'm'
list_changed=np.array(mylist)
list_changed[index]=letter
print list_changed