分析带有间隔的整数集的字符串以列出

编程入门 行业动态 更新时间:2024-10-24 23:23:01
本文介绍了分析带有间隔的整数集的字符串以列出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有"2,5,7-9,12"字符串.

我想从中获取[2、5、7、8、9、12]列表.

I want to get [2, 5, 7, 8, 9, 12] list from it.

在python中是否有内置函数?

Is there any built-in function for it in python?

谢谢.

UPD..我想,直接的答案是否.无论如何,感谢您的摘录".由 Sven Marnach 建议.

UPD. I suppose, the straight answer is No. Anyway, thanks for your "snippets". Using one, suggested by Sven Marnach.

推荐答案

此版本处理任意空格,重叠范围,无序范围和负整数:

This version handles arbitrary whitespace, overlapping ranges, out-of-order ranges, and negative integers:

from itertools import chain def group_to_range(group): group = ''.join(group.split()) sign, g = ('-', group[1:]) if group.startswith('-') else ('', group) r = g.split('-', 1) r[0] = sign + r[0] r = sorted(int(__) for __ in r) return range(r[0], 1 + r[-1]) def rangeexpand(txt): ranges = chain.from_iterable(group_to_range(__) for __ in txt.split(',')) return sorted(set(ranges)) >>> rangeexpand('-6,-3--1,3-5,7-11,14,15,17-20') [-6, -3, -2, -1, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 17, 18, 19, 20] >>> rangeexpand('1-4,6,3-2, 11, 8 - 12,5,14-14') [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 14]

更多推荐

分析带有间隔的整数集的字符串以列出

本文发布于:2023-10-13 09:47:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1487608.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:整数   字符串   间隔

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!