我正在读取一行文本数据,希望将该行拆分为一个值列表。例如,该行有四个数字,每个数字分配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/

10-13 07:32