2017-08-31 58 views
-1

如果我有一个列表,我可以替换列表中的一个字符串而不替换其他具有相同值的字符串吗?如何替换Python中的列表中的单个字符串?

例如,在列表中:

list1=['Mon', 'Mon', 'Tues', 'Wed'] 

我怎么能取代第一“星期一”到“星期一”,无需更换第二个“星期一”?

+1

这要看情况。你想替换第一个?还是最后?或者在中间的某个地方? –

+0

好吧,你必须决定你想要替换哪一个,并且我不知道你想怎么做,而不知道你选择的索引。 – RemcoGerlich

+1

@cold不知道编辑是在宽限期进行的,但是OP说第一次出现 –

回答

2

您可以使用index方法。它在特定起始位置后返回list中元素的第一次出现。起始位置,如果未定义,则默认为0;即,list的开始。

list1=['Mon', 'Mon', 'Tues', 'Wed'] 
try: 
    index = list1.index('Mon') 
    list1[index] = 'Monday' 
except ValueError: 
    print('Mon not found') 
+4

你也想在这个试试中分配任务,否则索引是undefined –

+0

谢谢,忘了吧 – Vladyslav

+0

很好用'else'! – RemcoGerlich

0

如果你已经知道你要更改的元素的索引,只需通过改变它 -

list1=['Mon', 'Mon', 'Tues', 'Wed'] 
list1[0] = 'Monday' 

如果你没有索引已经使用了index function.The索引函数查找第一个匹配并返回索引。如果你不知道是否Mon有没有在你的列表,你可以使用@Vladyslav乌沙科夫的方法,或者您可以检查是否'Mon'存在于list1

if 'Mon' in list1: 
    list1[list1.index('Mon')] = 'Monday' 

print(list1) 
# ['Monday', 'Mon', 'Tues', 'Wed'] 
相关问题