我的列表中有几个重复的打球项目。我想用另一个字符串项目更改这些项目之一。例如:
a = ['b','c','d','b','b']
我想将索引3的'b'更改为'x'
a = ['b','c','d','x','b']
答案 0 :(得分:1)
基本上,列表操作是:
a.pop(idx)
(将在索引idx
上弹出项目)a.insert(idx, val)
(将val
的值插入位置idx
)是的,这是一个定义非常严格的编程问题,有很多未解决的问题:
闻起来像作业。如果是这样,请在没有堆栈溢出的情况下执行此操作。
答案 1 :(得分:1)
阅读您的评论似乎并不在乎是否所有重复项都被替换了。因此,您可以使用以下代码一行完成此操作:
a = ['b','c','d','b','b']
new_a = [item if len([c for c in a[:index+1] if c == item]) == 1 else "x" for index, item in enumerate(a)]
print(new_a)
['b','c','d','x','x']
如果您真的只想更新第二个实例,则以下内容也可以在一行中完成:
a = ['b','c','d','b','b']
new_a = [item if len([c for c in a[:index+1] if c == item]) != 2 else "x" for index, item in enumerate(a)]
print(new_a)
['b','c','d','x','b']