首页 > 解决方案 > 展开一个看起来像 A1-A4 的字母数字范围

问题描述

我正在尝试在 python 中向我的程序添加一个函数,以扩展字母数字字符串范围。

input = "A1-A4"

并创建一个扩展范围作为列表:

output = [A1, A2, A3, A4]

我已经查看了以前扩展数字范围的类似答案:扩展一个看起来像这样的范围: "1-3,6,8-10" to [1,2,3, 6, 8,9,10]。但是,提供的解决方案无法处理字母数字范围。

我尝试使用正则表达式提取第一个字符并结合奥斯汀的以下内容(第一次没有正确提问):

str = 'B1-B4'
word1 = " ".join(re.findall("[a-zA-Z]+", str))
letter=word1[0]
ranges = [int(s) for s in str if s.isdigit()]
new_string=([f'letter{i}' for i in range(ranges[0], ranges[1]+1)])

但是,输出并没有通过这封信。我也不认为上面的过程是最合乎逻辑的。

谢谢!

标签: pythonlist

解决方案


这用于regex扩大范围:

import re

str = 'A1-A4'
chr = str[0]
ranges = list(map(int, re.findall(r'\d+', str)))
print([f'{chr}{i}' for i in range(ranges[0], ranges[1]+1)])

# ['A1', 'A2', 'A3', 'A4']

推荐阅读