删除python2.7中的特定字符串
我的名单如下:删除python2.7中的特定字符串,python,Python,我的名单如下: >>> header ['Id', ["['GSM1172844_184A1.txt', 'GSM1384316_MDAMB453.txt']"]] >>> type(header) list 如何将其更改为字符串,如下所示: ['Id','GSM1172844_184A1.txt', 'GSM1384316_MDAMB453.txt'] 我尝试使用re.split(“\[\124;\]\\”,str(header))。但结果不是我想要的
>>> header
['Id', ["['GSM1172844_184A1.txt', 'GSM1384316_MDAMB453.txt']"]]
>>> type(header)
list
如何将其更改为字符串,如下所示:
['Id','GSM1172844_184A1.txt', 'GSM1384316_MDAMB453.txt']
我尝试使用re.split(“\[\124;\]\\”,str(header))
。但结果不是我想要的
['',
"'Id', ",
'',
'',
"'GSM1172844_184A1.txt', 'GSM1384316_MDAMB453.txt'",
'',
'',
'',
'']
所以,任何建议都是希望。这个怎么样
>>> header = ['Id', ["['GSM1172844_184A1.txt', 'GSM1384316_MDAMB453.txt']"]]
>>> str(header).replace('[','').replace(']','').replace('"','').replace("'",'').split(', ')
['Id', 'GSM1172844_184A1.txt', 'GSM1384316_MDAMB453.txt']
如果您始终使用与示例中相同的格式,并且第二个字符串具有正确的Python语法,那么这将起作用。使用正则表达式如何
In [1]: import re
In [2]: re.findall("[A-Za-z0-9_\.]+", str(header))
Out[2]: ['Id', 'GSM1172844_184A1.txt', 'GSM1384316_MDAMB453.txt']
数据从哪里来?为什么你不能在那里解决这个问题?是的,我正在尝试。请通过编辑你的问题来显示
标题的分配位置,并希望修剪字符串。它是固定的。是的,为什么在我指示str(header)
'[\'Id\',[”时会出现“\”[\'GSM1172844\'U 184A1.txt\',\'GSM1384316\'U MDAMB453.txt\']“]]'
因为在类型转换中,像“
这样的特殊字符必须转义。作为您的代码(替换(“\'”,“”)
),当类型转换可以像普通字符串一样操作时出现的反斜杠。谢谢,让我学习一个新的内置函数。为什么不使用ast
模块来计算该列表?@cricket_007'ast.literal\u eval'如果输入不是有效的Python数据类型,则会引发异常,因此如果不是,则不会执行代码。
In [1]: import re
In [2]: re.findall("[A-Za-z0-9_\.]+", str(header))
Out[2]: ['Id', 'GSM1172844_184A1.txt', 'GSM1384316_MDAMB453.txt']