我该如何替换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"]]
我可以弄清楚如何更改两个列表,但是如果只更改一个特定的索引,我就不知道应该怎么做。
答案 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")