python - 拆分和替换二维列表中的字符串
问题描述
我有一组数据如下所示:
[['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>']]
请指教!
解决方案
这对你有用吗?只需遍历子列表并就地更新。
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')
(您不需要正则表达式。)
推荐阅读
- r - 查找位于其他 DataFrame 上的两列值之间的 DataFrame 的值
- python - 如何跨函数视图和 CBV 传递 ID?- 姜戈
- kubernetes - 在 kubernetes/docker swarm 中部署 mariadb galera 集群
- css - 使用 vue-material,如何在列表中进行文本换行而不是溢出到省略号?
- java - 如何在窗口中覆盖 Java KeyListener?
- php - Laravel:为像控制器这样的服务设置依赖注入
- python - 如何在 Python 中的类之间创建共享类属性
- php - 如果 preg_match 没有找到任何东西
- c - 我在 C 中的随机字符串生成器不起作用
- python-3.x - ValueError:特征名称的长度,177 与特征数量不匹配,6