如何修改Python字符串列表中的特定子字符串?



假设我有一个这样的列表:

rows = ['123', '456', '789']

,我试着修改第一个字符串的第一个字符,像这样:

行[0][0].replace (' 1 ', ' DDDD ')

那么当我打印出列表时,它没有变化吗?

我知道有一种方法可以通过列表理解来实现,但是遍历整个列表似乎效率很低。有没有一种方法可以只针对列表中的一个字符串?

.replace返回已更改的字符串,而不是在适当位置更改它。相反,您需要将字符设置为返回值,如下所示:

rows[0]=rows[0].replace('1','DDDD')#changes all occurrences

如果你只想改变第一个字符,你可以做

rows[0]='DDDD'+rows[0][1:]

但请记住,它不会检查字符

函数本身不会改变列表值,您需要这样做:

rows[0][0] = rows[0][0].replace('1','DDDD')

行= (' 123 ',' 456 ',' 789 ']

1。使用列表推导式,映射函数和lambda2.替换字符串列表中的子字符串

result = list(map(lambda st: str.replace(st, "3", "0"),行))结果→['120', '456', '789']

最新更新