python - 展开一个看起来像 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)])
但是,输出并没有通过这封信。我也不认为上面的过程是最合乎逻辑的。
谢谢!
解决方案
这用于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']
推荐阅读
- node.js - NodeJs - 猫鼬函数总是返回 null
- flutter - Flutter dio 图像上传不工作引发服务器 401 错误,但在邮递员中工作
- angular - AG Grid 从 v18.2.0 升级到 v20.0.0 破坏树数据不起作用
- memory - 如何编辑程序的内存并用 NOP 替换某个地址?
- ros - rqt_graph 中节点之间没有 ROS 主题
- python - 枢轴/转置并将类别转换为带有指示器的列(如果存在)
- java - 在 for 循环中继续导致 ArrayList 的 nullpointerexception
- c++ - 所有 n 位数字的数字总和并存储在总和中但没有得到正确答案的函数
- node.js - NPM 工作区和 VSCode node_modules 路径
- javascript - 即使设置为自动对焦,textarea 也不会自动对焦