python - 使用 while 循环遍历一系列以将字符添加到字符串。循环永远不会在完整数据上中断。我能做些什么?
问题描述
我创建了一个函数,它遍历具有两个不同确切长度的字符串列。将我的数据子集为 100 时,我没有问题,但是当我在 ~230K 的完整数据上运行该函数时,while 循环永远不会中断。下面是函数:
def add_dash(df):
n = 0
results = []
while n <= len(df[:-1]):
if len(df[n]) == 7:
results.append(df[n][:3] + '-' + df[n][3:])
n += 1
elif len(df[n]) == 13:
results.append(df[n][:4] + '-' + df[n][4:6] + '-' + df[n][6:9] + '-' + df[n][9:])
n += 1
else:
pass
return(results)
因为我在较小的集合上测试过它,所以我想不出为什么循环不会在更大的集合上结束。任何见解将不胜感激!
解决方案
试试下面的代码,
def add_dash(df):
n = 0
results = []
while n <= len(df[:-1]):
if len(df[n]) == 7:
results.append(df[n][:3] + '-' + df[n][3:])
elif len(df[n]) == 13:
results.append(df[n][:4] + '-' + df[n][4:6] + '-' + df[n][6:9] + '-' + df[n][9:])
else:
results.append('')
n+=1
return(results)
推荐阅读
- google-apps-script - 通过电报机器人和谷歌应用脚本在谷歌表格中填写订单
- rust - 如何获取 Rc 或 Boxed 值的内部值的 TypeId,而不是封闭类型的 TypeId?
- excel - 用于图片的 XlPasteType 枚举 (Excel)
- javascript - 动态更改表 ID
- sql-server - ASP.NET MVC 将数据从控制器/视图插入 SQL Server 数据库(实体框架数据库优先)
- android - facebook sdk:“必须使用活动访问令牌来查询有关当前用户的信息”
- c# - Unity - 我无法平滑我的 Kinematic Rigidbody2D 的连续运动
- swift - TypeError:无法读取未定义的属性“messageBody”
- html - Radio Buttons Customer Style
- java - Guice - Guice 中的 Spring Autowired 相当于什么