首页 > 解决方案 > 拆分和替换二维列表中的字符串

问题描述

我有一组数据如下所示:

[['05-Feb-2001 12:00:01','A','<>TG:MIN MAX W1 GRN RED'],
 ['05-Feb-2001 12:00:01','B','MIN MAX'],
 ['05-Feb-2001 12:00:07','A','<i>TG:MAX MIN W2'],
 ['05-Feb-2001 12:00:07','C','MAX RED GRN'],
 ['05-Feb-2001 12:00:20','A','MIN MAX RED'],
 ['05-Feb-2001 12:01:00','A','<i>TG:MAX MIN RED GRN']]

如该行的 3 值所示,它可能包含也可能不包含“<>TG”。我想检测

"<i>"

并将其从字符串中拆分出来,然后将其添加为第 4 列

所需的输出将是

[['05-Feb-2001 12:00:01', 'A', '<>TG:MIN MAX W1 GRN RED'],
 ['05-Feb-2001 12:00:01', 'B', 'MIN MAX'],
 ['05-Feb-2001 12:00:07', 'A', 'TG:MAX MIN W2', '<i>'],
 ['05-Feb-2001 12:00:07', 'C', 'MAX RED GRN'],
 ['05-Feb-2001 12:00:20', 'A', 'MIN MAX RED'],
 ['05-Feb-2001 12:01:00', 'A', 'TG:MAX MIN RED GRN', '<i>']]

请指教!

标签: pythonlistnested-lists

解决方案


这对你有用吗?只需遍历子列表并就地更新。

for l in lst:
    if '<i>TG' in l[-1]:
        l[-1] = l[-1].replace('<i>', '')
        l.append('<i>')       

print(lst)

[['05-Feb-2001 12:00:01', 'A', '<>TG:MIN MAX W1 GRN RED'],
 ['05-Feb-2001 12:00:01', 'B', 'MIN MAX'],
 ['05-Feb-2001 12:00:07', 'A', 'TG:MAX MIN W2', '<i>'],
 ['05-Feb-2001 12:00:07', 'C', 'MAX RED GRN'],
 ['05-Feb-2001 12:00:20', 'A', 'MIN MAX RED'],
 ['05-Feb-2001 12:01:00', 'A', 'TG:MAX MIN RED GRN', '<i>']]

如果要检查字符串开头的标记,请更改

if '<i>TG' in l[-1]

if l[-1].startswith('<i>TG')

(您不需要正则表达式。)


推荐阅读