我有一行从文本文件中读取,如下所示:
line="('18-1', '29-1', '30-1', '42-1', '44-1')"
我想将其转换为一组字符串,如下所示:
expected=['18-1', '29-1', '30-1', '42-1', '44-1']
有任何想法吗?我尝试 re.sub() 至少摆脱括号,但无济于事。
我有一行从文本文件中读取,如下所示:
line="('18-1', '29-1', '30-1', '42-1', '44-1')"
我想将其转换为一组字符串,如下所示:
expected=['18-1', '29-1', '30-1', '42-1', '44-1']
有任何想法吗?我尝试 re.sub() 至少摆脱括号,但无济于事。
您可以使用ast.literal_eval
:
import ast
line="('18-1', '29-1', '30-1', '42-1', '44-1')"
new_line = list(ast.literal_eval(line))
输出:
['18-1', '29-1', '30-1', '42-1', '44-1']
或者,使用re.findall
:
import re
vals = re.findall('\d+\-\d+', line)
输出:
['18-1', '29-1', '30-1', '42-1', '44-1']
您可以使用eval
方法来实现需求。如下:
line = "('18-1', '29-1', '30-1', '42-1', '44-1')"
result = list(eval(line))
expected = ['18-1', '29-1', '30-1', '42-1', '44-1']
assert expected == result