Python 为什么我的输出文件中有括号?

Python 为什么我的输出文件中有括号?,python,io,Python,Io,我的代码 只有几行输出,in.txt: with open('base.txt') as infile: r = [map(float, line.split()) for line in infile] r1=r[::3] r2=tuple(r1) with open('newindex1.txt') as infile: i = [map(int, line.split()) for line in infile] a2 = zip(*i) a11 = a2[0]

我的代码

只有几行输出,
in.txt

with open('base.txt') as infile:
    r = [map(float, line.split()) for line in infile]

r1=r[::3]
r2=tuple(r1)   

with open('newindex1.txt') as infile:
    i = [map(int, line.split()) for line in infile]

a2 = zip(*i)
a11 = a2[0]
a12 = a2[1]    

with open('in.txt','w') as file:
    for index in range(len(r2)):
            file.write(str(a11[index]) + " " + str(a12[index])+ " " + str(r2[index]) + "\n") 
newindex1.txt

0 0 [1.2]
1 0 [1.2]
2 0 [1.2]
3 0 [1.2]
4 0 [1.2]
5 0 [1.2]
6 0 [1.2]
7 0 [1.2]
8 0 [1.2]
9 0 [1.2]
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
base.txt

0 0 [1.2]
1 0 [1.2]
2 0 [1.2]
3 0 [1.2]
4 0 [1.2]
5 0 [1.2]
6 0 [1.2]
7 0 [1.2]
8 0 [1.2]
9 0 [1.2]
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0

我已将列表转换为元组。为什么我有括号?如何摆脱它们?

你之所以得到括号,是因为你正在用
str(r2[index])将一个列表(显然是一个单元素列表)转换成一个字符串。
。 解决此问题的最简单方法是提取唯一元素:将其更改为
str(r2[index][0])

我还建议您通过使用字符串模板替换过于生硬的
str
运算符(顺便说一句,它允许您更改浮动的类型,例如
%.2f
)来减少代码的错误倾向(并提高可读性)

如果您是这样做的,并且不小心忘记了
[0]
,您会得到一个(相当有用的)错误:


您还可以简化输入,并将
base.txt
读取为一个简单的浮点列表;但既然你似乎读了很多数字矩阵,我还是坚持你的一般方法。(关于这一点,你应该研究numpy。二维numpy数组正是你需要的东西。)

列表
r
的每个索引都是一个
列表。因此,当您将
r2
设置为
r
中的任何值时:

TypeError: a float is required

您正在将
r2
设置为具有列表值的元组<列表的code>str()
将打印带括号的内容。

(为什么
在.txt
输出文件中)您能给我们看一下您的输入文件吗?
r
是列表列表;将其(或其子部分)转换为元组,将生成列表元组。这将在输出中为您(一个元素)列表设置网络。这取决于您想要迭代的内容?特定项目的每一行,或者文件中的每一项?那么我应该怎么做?
r1=r[::3]
r2=tuple(r1)