Python 对嵌套元组列表的特定元素使用正则表达式
我有嵌套的元组列表:Python 对嵌套元组列表的特定元素使用正则表达式,python,regex,Python,Regex,我有嵌套的元组列表: ntl = [('h', '2019-11-12', 'l'), ('h', '2019-11-11', 'm'), ] 如您所见,每个元组中索引1处的条目都是日期。 我想删除数字之间的连字符。 像这样: date = [('h', '20191112', 'l'), ('h', '20191111', 'm'), ] 我试过这样的方法: date = [re.sub(r'-', '', i[1]) for i
ntl = [('h', '2019-11-12', 'l'),
('h', '2019-11-11', 'm'),
]
如您所见,每个元组中索引1处的条目都是日期。
我想删除数字之间的连字符。
像这样:
date = [('h', '20191112', 'l'),
('h', '20191111', 'm'),
]
我试过这样的方法:
date = [re.sub(r'-', '', i[1]) for i in ntp]
但这只输出日期条目,而不输出其他两个元组条目
有人能帮忙吗?这样对你合适吗 日期=[i[0],关于子项'-',i[1],i[2]表示ntp中的i] >>>[h',20191112',l',h',20191111',m']
像这样的东西对你合适吗 日期=[i[0],关于子项'-',i[1],i[2]表示ntp中的i] >>>[h',20191112',l',h',20191111',m']
拆包的方式不同吗
[(i, re.sub(r'-', '', j), k) for i,j,k in ntl]
[h',20191112',l',h',20191111',m']解包方式不同吗
[(i, re.sub(r'-', '', j), k) for i,j,k in ntl]
['h','20191112','l','h','20191111','m']您只需要更明确地构建元组列表:
date = [ (i[0], re.sub(r'-', '', i[1], i[2]) for i in ntp]
您只需要更明确地构建元组列表:
date = [ (i[0], re.sub(r'-', '', i[1], i[2]) for i in ntp]
不必使用re.sub,您可以拆分日期字符串并重新联接:
日期=[a、.joinb.split'-',c表示ntl中的a、b、c]
不必使用re.sub,您可以拆分日期字符串并重新联接:
日期=[a、.joinb.split'-',c表示ntl中的a、b、c]
您可以使用字符串替换方法代替re.sub:
您可以使用字符串替换方法代替re.sub:
或者使用str.replace删除'-':date=[a,b.replace'-',c代表ntl中的a,b,c]@Paul potato-xd,或者使用str.replace删除'-':date=[a,b.replace'-',c代表ntl中的a,b,c]@Paul potato-xd,但这只输出日期条目,而不输出其他两个元组条目。这是意料之中的,不是吗?您的列表理解只包含re.subr'-',i[1]。但这只输出日期条目,而不输出其他两个元组条目。这是意料之中的,不是吗?您的列表理解仅包含re.subr'-',i[1]。