我正在读取一行文本数据,希望将该行拆分为一个值列表。例如,该行有四个数字,每个数字分配5个空格,因此,如果数字是18、295、-9999和1780,则原始行将如下所示(其中^个字符表示行的开始和结束,不包括在实际输入数据中):
^ 18 295-9999 1780^
I want to split the line into a list of its actual component values:
[18, 295, -9999, 1780]
。I can create a loop to do this splitting, like this:
values = []
for i in range(4):
values.append(line[i*5:5])
有没有更有效或更“蟒蛇”的方式来做这件事?
提前谢谢你的帮助。
最佳答案
使用切片。。。
>>> [int(s[i:i+5]) for i in xrange(0, len(s), 5)]
[18, 295, -9999, 1780]
或者-如果你真的想,有些人会觉得
re
更容易阅读。。。(just throwing this in as an alternative for reference - don't shoot me!)>>> map(int, re.findall('.{5}', s))
[18, 295, -9999, 1780]
关于python - Python:如何将特定数目的字符上的字符串切成列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13182185/