0

我有一行从文本文件中读取,如下所示:

line="('18-1', '29-1', '30-1', '42-1', '44-1')"

我想将其转换为一组字符串,如下所示:

expected=['18-1', '29-1', '30-1', '42-1', '44-1']

有任何想法吗?我尝试 re.sub() 至少摆脱括号,但无济于事。

4

2 回答 2

3

您可以使用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']
于 2018-07-21T01:37:03.757 回答
0

您可以使用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
于 2018-07-21T01:56:28.927 回答