修改Python列中的数据

时间:2016-08-08 12:00:43

标签: python string

大家好我有一个这样的专栏,

matrix(x[1:4] + rep(0:6, each = 4), ncol=4, byrow = TRUE)

我想将“Start =”和日期格式删除到

 Start
 Start = 11122001
 Start = 12012014
 Start = 23122001 

我该如何正确地做到这一点?

1 个答案:

答案 0 :(得分:4)

这取决于你想要做什么。

如果您想从每行删除Start =

lines = [ format_date(re.sub("^Start =", '', line)) for line in lines ]

(假设您在列表中逐行显示文字)。

要格式化日期,您需要实现函数format_date 这会将日期从11122001转换为11/12/2001

根据输入格式,有多种方法可以执行此操作。 其中一个解决方案:

def format_date(x):
  if re.match(x, '[0-9]{8}'):
    return "/".join([x[:2], x[2:4], x[4:]])
  else:
    return x

首先检查该行是否与日期表达式匹配(看起来像日期), 如果是的话,重写它。否则只需按原样返回。

当然,您可以将解决方案合并到一行中 并且根本不使用功能,但在这种情况下 它不会那么清楚。

另一个基于map的解决方案:

def format_line(x):
  x = re.sub("^Start =", '', line)
  if re.match(x, '[0-9]{8}'):
    return "/".join([x[:2], x[2:4], x[4:]])
  else:
    return x

map(format_line, lines)