def PrintStr(str_content):
    str_list = str_content.split(',')
    a = 0
    b = 0
    c = 1
    new_str_list = []
    # 获取数据并筛选和排序
    for st in str_list:
        # 不包含'~'则必然不包含'x'
        if '~' not in st:
            new_str_list.append(int(st))
        # 包含'x'则必然包含'~'
        if 'x' in st:
            ab, c = st.strip().split('x')
            a, b = ab.split('~')
        elif '~' in st:
            a, b = st.strip().split('~')
        if a or b:
            for i in range(int(a), int(b), int(c)):
                new_str_list.append(i)
    # 排序 去重
    new_str_list = sorted(set(new_str_list))

    # 打印
    data = ''
    all_data = ''
    for ids, val in enumerate(new_str_list):
        if len(data.split(','))<=3 and ids<len(new_str_list)-1:
            if val == new_str_list[ids + 1] - 1:
                data += str(val) + ','
            else:
                data += str(val) + ','
        else:
            all_data += data + '\n'
            data = '' + str(val) + ','
    all_data += data
    print(all_data)


if __name__ == "__main__":
    str_content = '2, -3~2, 2~10x3'
    PrintStr(str_content)

 

posted @ 2022-03-31 15:49  黑无常  阅读(52)  评论(0)    收藏  举报