Skip to main content
 首页 » 编程设计

python之如何将不同格式的字符串转换为 int 列表 (Python)

2025年05月04日23mfrbuaa

m = re.match(r'(\d+)(?:-(\d+))?$', string) 
start = m.group(1) 
end = m.group(2) or start 
return list(range(int(start, 10), int(end, 10) + 1)) 

现在它能够处理以下格式的字符串并将它们转换成列表...

'0-6' 结果为 [0,1,2,3,4,5,6]

'7' 结果为 [7]

无论如何我可以更改符号以能够处理以下格式的字符串...

'1 2 3 4 5' 结果为 [1,2,3,4,5]

请您参考如下方法:

正则表达式并不是生活的全部。在这种情况下,真的没有理由使用正则表达式。试试这个,它的速度是示例数据 '0-6 2 3-6' 上 Shawn Chin 的 to_num_list 的两倍以上(对于我尝试过的所有数据它的速度大约是原来的 1.9 到 4.5 倍):

def included_numbers(s): 
    out = [] 
    for chunk in s.split(): 
        if '-' in chunk: 
            f, t = chunk.split('-') 
            out.extend(range(int(f), int(t)+1)) 
        else: 
            out.append(int(chunk)) 
    return out