我如何从给定项目更改数组中的所有项目?

问题描述 投票:0回答:3

例如,如果我有一个名字列表:

list_of_name = [ 'James','Frank','Sam','Sara','Joe' ]

我将如何在Python中只更改我想要的项目之后的项目。例如,对于Sam之后的所有名称,我想将其他名称更改为Sam。解决方案如下所示:

list_of_name = [ 'James','Frank','Sam','Sam','Sam' ]
python
3个回答
2
投票

您可以按照以下方式进行操作:

def func(lst, val):
    try:
        i = lst.index(val)
        lst[i:] = [val] * (len(lst) - i)
    except ValueError:
        pass

>>> list_of_name = [ 'James','Frank','Sam','Sara','Joe' ]
>>> func(list_of_name, 'Sam')
>>> list_of_name
['James', 'Frank', 'Sam', 'Sam', 'Sam']

0
投票

您可以先找到所需值的索引,然后将所有元素的索引比所需值的索引大,将所有元素更改为所需值:

list_of_name = [ 'James','Frank','Sam','Sara','Joe' ]
wanted_name = 'Sam'
idx = list_of_name.index('Sam')

list_of_name = [wanted_name  if i > idx else n for i, n in enumerate(list_of_name)]
list_of_name

输出:

['James', 'Frank', 'Sam', 'Sam', 'Sam']

0
投票

有点野蛮但

for i in range(list_of_name.index("Sam"),len(list_of_name)):
   list_of_name[i]="Sam"

应该这样做

© www.soinside.com 2019 - 2024. All rights reserved.