将公式转换为Python中的数字列表

问题描述 投票:0回答:1

我有一个字母数字字符串列表,其中包含两个特殊字符 + 和 -。如下所示,输入代表我们公司产品的部件号。我想提取各个组件作为输出。大约有 45,000 种产品,下面的数据是部件号的示例。如何解析该字符串以区分 + 和 - 并提供正确的输出?

enter image description here

我不确定如何区分 - 表示的范围和 + 表示的加法。

python regex string function parsing
1个回答
0
投票

您可以按“+”或“-”进行拆分并保留分隔符:

import re

def parse(data):
    parts = re.split("([+-])", data)
    # Initialize new list with first item in original list
    result = [int(parts[0])]
    for i in range(2, len(parts), 2):
        if parts[i - 1] == '+':
            # Just add the number
            result.append(int(parts[i]))
        else:
            # Add all the numbers
            result += range(int(parts[i - 2]) + 1, int(parts[i]) + 1)
    return result

print(parse("1-3+5-6"))

输出:

[1, 2, 3, 5, 6]

注意:这将在错误输入时引发异常。

© www.soinside.com 2019 - 2024. All rights reserved.