替换列表python列表中特定索引中的字符串

时间:2020-03-02 03:39:54

标签: python python-3.x

我该如何替换python列表列表中的字符串,但我想仅将更改应用于特定索引,而又不影响其他索引,请参见以下示例:

log4cplus.logger.DEVELOPER=DEBUG, Developer
log4cplus.appender.Developer=log4cplus::DailyRollingFileAppender
log4cplus.appender.Developer.DatePattern=%Y-%m-%d
log4cplus.appender.Developer.Schedule=DAILY
log4cplus.appender.Developer.File=logs/Developer.log
log4cplus.appender.Developer.MaxFileSize=2MB
log4cplus.appender.Developer.MaxBackupIndex=200
log4cplus.appender.Developer.layout=log4cplus::PatternLayout
log4cplus.appender.Developer.layout.ContextPrinting=enabled
log4cplus.appender.Developer.layout.ConversionPattern=%D{[%Y/%m/%d %H:%M:%S,%Q]} [%t] %p - %m%n 
log4cplus.appender.Developer.Threshold=TRACE

我想将单词“ test”更改为“ my”,这样结果只会影响第二个索引:

mylist = [["test_one", "test_two"], ["test_one", "test_two"]]

我可以弄清楚如何更改两个列表,但是如果只更改一个特定的索引,我就不知道应该怎么做。

2 个答案:

答案 0 :(得分:3)

使用索引:

newlist = []
for l in mylist:
    l[1] = l[1].replace("test", "my")
    newlist.append(l)
print(newlist)

或者如果子列表中始终有两个元素,则为oneliner:

newlist = [[i, j.replace("test", "my")] for i, j in mylist]
print(newlist)

输出:

[['test_one', 'my_two'], ['test_one', 'my_two']]

答案 1 :(得分:2)

有一种方法可以在一行上执行此操作,但目前还没有出现。这是两行的操作方法。

for two_word_list in mylist:
    two_word_list[1] = two_word_list.replace("test", "my")