Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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字符串格式,需要连续添加到字符串中_Python_String_Format - Fatal编程技术网

Python字符串格式,需要连续添加到字符串中

Python字符串格式,需要连续添加到字符串中,python,string,format,Python,String,Format,我刚开始学习python,如有任何建议,将不胜感激。我在读另一个程序生成的表格,从每行中取出2个数字,我称它们为a和b。(它们被保存为通量,并在我的程序中观察到)我需要从每行中提取这两个数字,并将它们格式化为如下格式- (a,b),(a,b),(a,b) ect. 每个连续括号都来自连续行,第一个a、b来自第1行,第二个a、b来自第2行,等等。我需要阅读整个表格,但表格长度会有所不同 这就是我目前所拥有的。它可以读取表格并提取出我需要的数字,但是,我不知道如何将数字转换成正确的格式。我想说的

我刚开始学习python,如有任何建议,将不胜感激。我在读另一个程序生成的表格,从每行中取出2个数字,我称它们为a和b。(它们被保存为通量,并在我的程序中观察到)我需要从每行中提取这两个数字,并将它们格式化为如下格式-

(a,b),(a,b),(a,b) ect. 
每个连续括号都来自连续行,第一个a、b来自第1行,第二个a、b来自第2行,等等。我需要阅读整个表格,但表格长度会有所不同

这就是我目前所拥有的。它可以读取表格并提取出我需要的数字,但是,我不知道如何将数字转换成正确的格式。我想说的是递归将是最有效的,但我不确定如何做到这一点。先谢谢你

#!/usr/bin/python

file = open("test_m.rdb")

 while 1:
    line = file.readline()
    i = line.split()
    flux = i[2]
    observed = i[4]
    if not line:
        break
或更通用的格式化程序:

result_string = ", ".join("('{2}', '{4}')".format(*res) for res in results)
非常简单的解决方案:

with open('data') as data:
    print ', '.join('(%s, %s)' % (x.split()[2], x.split()[4])
                    for x in data.readlines())
只需使用
readlines
迭代文件中的行。

假设得到的两个值是str1和str2
//在循环中循环遍历您的值
strTable=strTable+['('+str1+')、'('+str2+')]


希望oit能起作用,如果不行,请评论,我会解决它。

你的意思是
result\u string=“,”。join([str(res)表示res in results])
?@C0deH4cker-你的变体是一个列表理解,它在内存中构建一个新列表,然后将其传递给join()。我将其作为生成器表达式编写,它一次传递一个值到join(),而不构建列表。它们都可以工作,但我的应该稍微快一点,占用更少的内存。看啊,以前从来都不知道这样的生成器表达式。很高兴知道,谢谢!要将数据输出为字符串还是列表?此外,输入文件的结构如何?这两个数字是每行用空格分隔的,还是像“(1,6)”?不要担心一组值后的逗号,当添加列表类型值时,它将自动添加。
with open('data') as data:
    print ', '.join('(%s, %s)' % (x.split()[2], x.split()[4])
                    for x in data.readlines())