Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中拆分str中的所有数据?_Python_String - Fatal编程技术网

如何在python中拆分str中的所有数据?

如何在python中拆分str中的所有数据?,python,string,Python,String,我必须从txt文件中分割这些值。问题是我无法分割所有数据并返回。我甚至不知道哪种str方法可以实现我的目标。以下是我想做的: 给定数据: 1.02.34.35.55.33.64.64.46.74.36.67.45.68.53.75.54.45.23.67.24.98.67.45.23.75.2 我想要的是: 1.0 2.3 4.3 5.5 . . . . . 5.2 将字符串分成三组,然后重新联接 def chunks(l, n): """ Yield successive n-si

我必须从txt文件中分割这些值。问题是我无法分割所有数据并返回。我甚至不知道哪种str方法可以实现我的目标。以下是我想做的:

给定数据:

1.02.34.35.55.33.64.64.46.74.36.67.45.68.53.75.54.45.23.67.24.98.67.45.23.75.2
我想要的是:

1.0
2.3
4.3
5.5
.
.
.
.
.
5.2
将字符串分成三组,然后重新联接

def chunks(l, n):
    """ Yield successive n-sized chunks from l.
    """
    for i in xrange(0, len(l), n):
        yield l[i:i+n]

s = '1.02.34.35.55.33.64.64.46.74.36.67.45.68.53.75.54.45.23.67.24.98.67.45.23.75.2'

print "\n".join(chunks(s,3))
结果:

1.0
2.3
4.3
5.5
...
5.2

也许最简单的答案是一次将字符串拆分为3个字符。这假设每个数字正好是两位数字,中间有一个小数点

>>> data = '1.02.34.35.55.33.64.64.46.74.36.67.45.68.53.75.54.45.23.67.24.98.67.45.23.75.2'
>>> [data[i:i+3] for i in range(0, len(data), 3)]
['1.0', '2.3', '4.3', '5.5', '5.3', '3.6', '4.6', '4.4', '6.7', '4.3', '6.6', '7.4', '5.6', '8.5', '3.7', '5.5', '4.4', '5.2', '3.6', '7.2', '4.9', '8.6', '7.4', '5.2', '3.7', '5.2']

您也可以使用regexp

import re
test='1.02.34.35.55.33.64.64.46.74.36.67.45.68.53.75.54.45.23.67.24.98.67.45.23.75.2'
num = re.compile('\d\.\d')
list_of_num = re.findall(num, test)

在内部它做同样的事情-正则表达式引擎匹配每个字符。所以不能说这更有效。不过,您不必查看循环

你是如何获得“给定数据”的?为了定义“给定数据”,您可以发布用于读取文本文件的代码吗?另外,在文本文件中放几行,就像它们出现在文件中一样。所有的数字都是一位数字,后面跟一个小数点,后面跟一位数字吗?如果不是,如果你看到“1.012.3”,那应该变成“1.012.3”还是“1.012.3”?不,我没有。我得到的只是一个包含这些值的文本文件。@Taha全部放在一行上?@Kevin:不,我要的是上面显示的精确值
import re
test='1.02.34.35.55.33.64.64.46.74.36.67.45.68.53.75.54.45.23.67.24.98.67.45.23.75.2'
num = re.compile('\d\.\d')
list_of_num = re.findall(num, test)