我在文本文件的单个列中有一个数据,如下所示:
2305 \ n1961 \ n2224 \ n1223 \ n。当我读取这些数据时,它会将data_type更改为string。
data = open('C:\file.txt','r')
lines = data.readlines()
new_data = []
for i in range(len(lines)):
new_data.append(lines[i].strip())
print new_data
这会产生[' 2305',' 1961',' 2224',' 1223'] 但我想要上面的输出没有分隔符" ' "
我尝试了这个但是没有工作
no_list = []
for list in new_data:
no_list.append(int(list))
print no_list
和以前的结果相同。我可以用int格式得到数值数据。
答案 0 :(得分:1)
只需输入UTF-8字符串类型并使用内置的int()函数。 我已对下面的代码进行了必要的更改。我也做了这样的事情,你只会迭代一次行列表,并简化程序的流程,以便更容易理解。
lines = open('C:\file.txt','r').readlines()
new_data = []
for line in lines:
new_data.append(int(line.strip()))
print new_data
享受并祝你好运。
答案 1 :(得分:1)
有许多方法可以将列表从string
转换为int
类型。然而,我要注意的第一件事是:如果你不必,不要在列表上重复两次。当您进行迭代时,请读取数据,将其转换为类型,然后附加:
for line in data.readlines():
new_data.append(int(line.strip()))
可以使用列表推导或map
调用来缩短这一点:
new_data = map(int, data.readlines())
new_data = [int(line) for line in data.readlines()]
如果必须迭代两次,可以使用列表推导或map
进行转换:
no_data = [int(num) for num in new_data]
# or
no_data = map(int, new_data)