我有一个数字字符串,我想从文件中读取并解析成子部分,子部分的长度基于字符串中的数字。字符串中的第一个数字是第一个子节的长度。例如,如果我有一个数据字符串,如下所示: 4、11、22、33、3、44、55、5、44、55、66、77
我想分成以下几部分:
第一小节的长度是4,所以,4,11,22,33
第二小节是长度3,所以是3,44,55
第三小节是长度5,所以5,44,55,66,77
我尝试在slice中使用变量,以便在遍历数据时可以增加start/stop值,但不需要变量。我找到了一种方法,可以在执行过程中删除每个小节,以便第一个值始终是下一小节的长度,但看起来有点笨拙。你知道吗
如果您有任何建议,我将不胜感激-谢谢
在处理更复杂的逻辑时,我更喜欢使用常规循环。你知道吗
在本例中,我将使用
while
循环,运行直到列表为空,并删除已处理的元素。如果节是错误的(即最后一节超出了字符串的大小),assert将告诉您。你知道吗这将分割部分并将它们保存在名为
sections
的列表中,大小作为第一个元素,如示例中所示。你知道吗编辑:添加了错误检查。你知道吗
我只是想把这个扔出去。与BoppreH的解决方案非常相似,但它通过迭代索引避免了创建
n
额外列表的开销:生成子列表后,可以通过执行以下操作检查错误:
顺便问一下,为什么您的数据以这种奇怪的方式构建?它似乎容易出错。你知道吗
你可以这样做:
这样你只会在你的列表上循环一次。你知道吗
或者
相关问题 更多 >
编程相关推荐