我有一个只有0和1的文本文件。它们之间没有空格。示例:
0101110号
1110111年
我想一次读取一个字符,并将它们作为整数列表中的单个元素。你知道吗
我的代码:
intlist = []
with open('arq.txt', 'r') as handle:
for line in handle:
if not line.strip():
continue
values = map(int, line.split())
intlist.append(values)
print intlist
handle.close()
我的结果:
[[101110],[1110111]]
就像我在intlist=[0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1]中转换0101110一样。(不带'\n')
你只需要两个改变。第一种情况是,当您制作
values
时,需要获取行中的每个字符,而不是一次获取整行:values = [int(x) for x in line.strip() if x]
现在,如果您自己运行这段代码,您将得到
[[1, 0, ...], [1, 1, ...]]
。问题是,如果用另一个list作为参数调用list.append
,则只需添加list作为元素。您正在寻找list.extend
方法:intlist.extend(values)
您的最终代码是:
有一种方法你可以做到。您也不需要使用
handle.close()
上下文管理器为您处理关闭文件的操作。你知道吗如果只有数字和换行符,则只需读取文件,删除换行符,将结果字符串映射为整数,然后将其转换为
list
:相关问题 更多 >
编程相关推荐