python - 如何根据字符串长度将一列拆分为多列?
问题描述
我是一个编程新手,所以请原谅这个基本问题。
我有一个 csv 文件,其中每条记录只是一个没有分隔符的长字符串,例如“A01BC234”。我想将其拆分为 4 个单独的列,如下所示:“A”、“01”、“BC”、“234”。每条记录都有相同的字符串长度,我需要在同一个地方拆分它:即在上面的例子中,第 1 列将始终有 1 个字符,第 2 列将有 2,第 3 列将有 2,第 4 列将有 3 .
有没有一种简单的方法可以用 python 中的函数来做到这一点?我查找了 的文档split()
,但看起来需要一个分隔符。
解决方案
该re.findall
功能在这里派上用场:
row = 'A01BC234'
parts = re.findall(r'([A-Z])([0-9]{2})([A-Z]{2})([0-9]{3})', row)
print(parts)
这将打印以下元组(在元素列表中):
[('A', '01', 'BC', '234')]
编辑:
我们也可以使用字符串切片来完成相同的结果:
x = 'A01BC234'
parts = [x[:1], x[1:3], x[3:5], x[5:]]
print(parts) # ['A', '01', 'BC', '234']
这可能优于正则表达式版本,因为它仅依赖于基本字符串函数。
推荐阅读
- scala - Spark:按键重新分区输出
- elasticsearch - 过滤器不适用于加权搜索
- php - 如何在亚马逊 AMI 实例上编辑 php.ini(php 版本 7.1)文件
- apache - 有没有办法创建一个可以重新启动 Apache httpd 服务器的自定义任务?
- django - Django Model-有没有办法在 wagtail 面板中选择多个页面,如 checbox?
- python - Python:创建一个接受表达式并将表达式打印为字符串及其结果的函数
- javascript - 第二次单击时按钮被禁用
- javascript - 如何在 reactjs 中以编程方式触发 onsubmit 事件?
- android - 无法从 Firebase 数据库中获取数据 - 它返回一个空值
- laravel - 如何获取总和ID较少的数据