将数字文本文件读入不带单引号的列表 Python
read in text file of numbers to a list without the single quotes Python
当我读入一个数字文本文件时:
1, 2, 3, 4, 5, 6, 7, 8
列表创建如下:
dTags = ['1, 2, 3, 4, 5, 6, 7, 8']
我不想要列表开头和结尾的单引号,所以我只希望它像这样:
dTags = [1, 2, 3, 4, 5, 6, 7, 8]
这是我使用的代码:
dTags = []
with open("tagNumbersToTest.txt") as file:
for line in file:
line = line.strip() #or some other preprocessing
dTags.append(line) #storing everything in memory!
#print(dTags)
我怎样才能做到这一点?
如果你有一行:
line = "1, 2, 3, 4, 5, 6, 7, 8"
您可以使用以下方式附加整数列表:
dTags.append([int(x) for x in line.split(",")])
这将附加一个列表,例如:
[1, 2, 3, 4, 5, 6, 7, 8]
那么您的 dTags
将是一个列表列表。相反,如果您希望将所有行连接为一个列表而不是列表列表,请使用 extend
而不是 append
.
尝试
(假设您的文件中有 1 行文本)
with open('data.txt') as f:
nums = [int(x) for x in f.readline().strip().split(',')]
print(nums)
在您的例子中,它是将单个项目附加到列表中。您想要的输出包含 5 个元素。您可以尝试的一件事是 -
dTags = []
with open("tagNumbersToTest.txt") as file:
for line in file:
dTags.extend(line.split(','))
输出-
['1', ' 2', ' 3', ' 4', ' 5']
要获取所有整数值而不是字符串,那么您可以添加以下行,前提是所有元素都是 int 数据类型。
dTags_list = [int(i) for i in dTags]
输出-
[1, 2, 3, 4, 5]
总结你的代码-
dTags = []
with open("tagNumbersToTest.txt") as file:
for line in file:
dTags.extend([int(i) for i in line.split(',')])
如果您想将字符串转换为 Python 代码,您可以使用 eval(list(line))
即使出于安全原因我不推荐它。
dTags = []
with open("tagNumbersToTest.txt") as file:
for line in file:
line = line.strip()
dTags.append(list(eval(line)))
dTags
将是一个列表列表,但您可以对其进行操作或修改文本文件以获得所需的输出。
当我读入一个数字文本文件时:
1, 2, 3, 4, 5, 6, 7, 8
列表创建如下:
dTags = ['1, 2, 3, 4, 5, 6, 7, 8']
我不想要列表开头和结尾的单引号,所以我只希望它像这样:
dTags = [1, 2, 3, 4, 5, 6, 7, 8]
这是我使用的代码:
dTags = []
with open("tagNumbersToTest.txt") as file:
for line in file:
line = line.strip() #or some other preprocessing
dTags.append(line) #storing everything in memory!
#print(dTags)
我怎样才能做到这一点?
如果你有一行:
line = "1, 2, 3, 4, 5, 6, 7, 8"
您可以使用以下方式附加整数列表:
dTags.append([int(x) for x in line.split(",")])
这将附加一个列表,例如:
[1, 2, 3, 4, 5, 6, 7, 8]
那么您的 dTags
将是一个列表列表。相反,如果您希望将所有行连接为一个列表而不是列表列表,请使用 extend
而不是 append
.
尝试
(假设您的文件中有 1 行文本)
with open('data.txt') as f:
nums = [int(x) for x in f.readline().strip().split(',')]
print(nums)
在您的例子中,它是将单个项目附加到列表中。您想要的输出包含 5 个元素。您可以尝试的一件事是 -
dTags = []
with open("tagNumbersToTest.txt") as file:
for line in file:
dTags.extend(line.split(','))
输出-
['1', ' 2', ' 3', ' 4', ' 5']
要获取所有整数值而不是字符串,那么您可以添加以下行,前提是所有元素都是 int 数据类型。
dTags_list = [int(i) for i in dTags]
输出-
[1, 2, 3, 4, 5]
总结你的代码-
dTags = []
with open("tagNumbersToTest.txt") as file:
for line in file:
dTags.extend([int(i) for i in line.split(',')])
如果您想将字符串转换为 Python 代码,您可以使用 eval(list(line))
即使出于安全原因我不推荐它。
dTags = []
with open("tagNumbersToTest.txt") as file:
for line in file:
line = line.strip()
dTags.append(list(eval(line)))
dTags
将是一个列表列表,但您可以对其进行操作或修改文本文件以获得所需的输出。