是否可以将列表中的多个项目更改为相同?

时间:2017-11-25 07:09:01

标签: python python-2.7

list = ['_ ','_ ','_ ','_ ','_ ']   
index = [1,4]
letter = 'm'

那么有没有可以使用索引和字母将列表1和4更改为'm'?

感谢您的帮助!

3 个答案:

答案 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