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