修改Python列中的数据

修改Python列中的数据,python,string,Python,String,嗨伙计们我有一个这样的专栏 Start Start = 11122001 Start = 12012014 Start = 23122001 我想将“Start=”和日期格式删除到 Start 11/12/2001 12/01/2014 23/12/2001 如何正确执行此操作?这取决于您正在尝试执行的操作 如果要从每行中删除Start=: lines = [ format_date(re.sub("^Start =", '', line)) for line in lin

嗨伙计们我有一个这样的专栏

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

 Start
 11/12/2001
 12/01/2014
 23/12/2001

如何正确执行此操作?

这取决于您正在尝试执行的操作

如果要从每行中删除
Start=

lines = [ format_date(re.sub("^Start =", '', line)) for line in lines ]
(假设您的文本在列表中逐行显示)

要格式化日期,您需要实现函数
format\u 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
首先检查行是否与日期表达式匹配(看起来像日期), 如果有,重写它。否则就按原样退回

当然,您可以在一行中组合解决方案 根本不用函数,但在这种情况下 这就不那么清楚了

另一种基于地图的解决方案:

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)

这取决于你想做什么

如果要从每行中删除
Start=

lines = [ format_date(re.sub("^Start =", '', line)) for line in lines ]
(假设您的文本在列表中逐行显示)

要格式化日期,您需要实现函数
format\u 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
首先检查行是否与日期表达式匹配(看起来像日期), 如果有,重写它。否则就按原样退回

当然,您可以在一行中组合解决方案 根本不用函数,但在这种情况下 这就不那么清楚了

另一种基于地图的解决方案:

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)

答案不完整。您还应该提到,如何在数字之间引入
/
。@niyasc:Fixed。谢谢你的评论,答案不完整。您还应该提到,如何在数字之间引入
/
。@niyasc:Fixed。谢谢你的评论