我有这样一个txt文件:
1 3 4
5 5 6我想相应地将它的元素解析为元组或列表。到目前为止,我能够逐行读取文件,但结果不是我想要的。
ins = open( "input.txt", "r" )
array = []
for line in ins:
line = line.rstrip('\n')
array.append( line )
ins.close()
print array但是,打印我得到的数组
['1 3 4', '5 5 6']我想要的是
[[1, 3, 4], [5, 5, 6]]有办法做到这一点吗?
发布于 2014-01-20 15:50:31
如果我正确地理解了您所要求的内容,那么您将寻找str对象的str方法。您可能还希望使用int类型来获取实际数字,而不是字符串:
data = []
for line in ins:
number_strings = line.split() # Split the line on runs of whitespace
numbers = [int(n) for n in number_strings] # Convert to integers
data.append(numbers) # Add the "row" to your list.
print(data) # [[1, 3, 4], [5, 5, 6]]下面的行做了同样的事情,但是以一种更紧凑和Pythonic的方式:
data = [[int(n) for n in line.split()] for line in ins]最后,如果您真的想使用元组而不是列表,那么只需要在内部列表上使用tuple类型:
data = [tuple(int(n) for n in line.split()) for line in ins]
print(data) # [(1, 3, 4), (5, 5, 6)]发布于 2014-01-20 15:48:57
with open("input.txt", "r") as file:
result = [[int(x) for x in line.split()] for line in file]发布于 2014-01-20 15:50:05
单班轮时间:
[line.split() for line in ins]如果要将项转换为int,请随意这样做:
[map(int, line.split()) for line in ins]https://stackoverflow.com/questions/21238242
复制相似问题