我是python的新手并尝试在python 3中执行以下操作
我有一个像这样的文本文件
1 2 3
4 5 6
7 8 9
.
.
我希望将其转换为像这样的元组组
((1,2,3),(4,5,6),(7,8,9),...)
我尝试过使用
f = open('text.txt', 'r')
f.readlines()
但是这给了我一个单词的列表。
任何人都可以帮我这个吗?
答案 0 :(得分:4)
使用csv模块的方法 -
>>> import csv
>>> f = open('a.txt','r')
>>> c = csv.reader(f,delimiter='\t') #Use the delimiter from the file , if a single space, use a single space, etc.
>>> l = []
>>> for row in c:
... l.append(tuple(map(int, row)))
...
>>> l = tuple(l)
>>> l
(('1', '2', '3'), ('4', '5', '6'), ('7', '8', '9'))
虽然如果你真的不需要元组,不要使用它们,最好把它们留在列表中。
上述代码中的row
和l
最初都是列表。
答案 1 :(得分:2)
你可以试试这个,
>>> s = '''1 2 3
4 5 6
7 8 9'''.splitlines()
>>> tuple(tuple(int(j) for j in i.split()) for i in s)
((1, 2, 3), (4, 5, 6), (7, 8, 9))
对于您的情况,
tuple(tuple(int(j) for j in i.split()) for i in f.readlines())