python - 将以字符串形式给出的数组范围转换为数字

标签 python python-3.x

我从废弃的 STAAD Pro 中获得了以下数组。输入文件。

我想用实际范围替换TO

数组项示例:

[["638TO640"], ["3033", "3038", "4081", "4087"], ["601TO615", "617"]]

我希望这些数组项变成:

[[638, 639, 640], [3033, 3038, 4081, 4087], [601, 602, 603, 604,... 615, 617]]

有没有一种简单的Python方式来实现转换?

最佳答案

只需使用正则表达式解析字符串中的两个数字并创建一个 range 对象:

import re

def str_to_range(s):
    begin, end = re.match(r'(\d+)TO(\d+)', s).groups()
    return list(range(int(begin), int(end) + 1))
>>> str_to_range('638TO640')
[638, 639, 640]

关于python - 将以字符串形式给出的数组范围转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66601447/

相关文章:

python - Discord.py 存在哪些问题?

Python 异步内核 : "filedescriptor out of range in select()"

python - 哪个图是 "the right one"?

python - 在程序运行开始时填充 wxChoice | Python

python - 从 BeautifulSoup 结果中获取表单 "action"

python - 即使使用种子值,tensorflow tf.data.experimental.rejection_resample 也无法实现目标分布

python - 在 Basemap 中使用 maskoceans 时,世界的一半被遮盖了

python - 如何在Python中将列表拆分为特定长度的子列表并将剩余部分拆分为单独的子列表?

opencv - 无法在 OpenCV for python 中获取双击事件

python - Python 中的高效矢量/点类