关于Python中的文本文件到数组
我有一个大的文本文件,读起来像关于Python中的文本文件到数组,python,arrays,text,Python,Arrays,Text,我有一个大的文本文件,读起来像 Kyle 40 Greg 91 Reggie 58 如何将其转换为如下所示的数组 array = ([Kyle, 40], [Greg, 91], [Reggie, 58]) 提前感谢。假设输入正确: array = [] with open('file.txt', 'r') as f: for line in f: name, value = line.split() value = int(value)
Kyle 40
Greg 91
Reggie 58
如何将其转换为如下所示的数组
array = ([Kyle, 40], [Greg, 91], [Reggie, 58])
提前感谢。假设输入正确:
array = []
with open('file.txt', 'r') as f:
for line in f:
name, value = line.split()
value = int(value)
array.append((name, value))
假设输入正确:
array = []
with open('file.txt', 'r') as f:
for line in f:
name, value = line.split()
value = int(value)
array.append((name, value))
曼尼解决方案的替代方案:
with open('file.txt', 'r') as f:
myarray = [line.split() for line in f]
因为f中的行比f中的行更惯用
输出形式如下:
myarray = [['Kyle', '40'], ['Greg', '91'], ['Reggie', '58']]
曼尼解决方案的替代方案:
with open('file.txt', 'r') as f:
myarray = [line.split() for line in f]
因为f中的行比f中的行更惯用
输出形式如下:
myarray = [['Kyle', '40'], ['Greg', '91'], ['Reggie', '58']]
打开文件,读入每一行,从末尾去掉换行符,在空格字符中拆分,然后将第二个值转换为int:
array = [(name, int(number)) for name, number in
(line.strip().split() for line in open('textfile'))]
打开文件,读入每一行,从末尾去掉换行符,在空格字符中拆分,然后将第二个值转换为int:
array = [(name, int(number)) for name, number in
(line.strip().split() for line in open('textfile'))]
。。。甚至比公认答案中给出的更短:
array = [(name, int(i)) for name,i in open(file)]
。。。甚至比公认答案中给出的更短:
array = [(name, int(i)) for name,i in open(file)]
这对我不起作用。。。如果有区别的话,我使用的是Python 2.7。OP不清楚,但您可能希望将第二项转换为int。此外,OP的数组是一个列表元组,而您的数组是一个列表元组。元组列表可能是更好的方法。Python声称我在第3行使用了无效语法,open'data.txt',r'作为f:。它特别指向open这个词。@Cosmo,我想他指的是元组列表,OP,请澄清一下。另外@Keith,open应该可以工作,除非你在其他地方重新定义它。open根本不起作用。。。我试着把它放在一个不同的程序中,它再次声称我有语法错误。这对我不起作用。。。如果有区别的话,我使用的是Python 2.7。OP不清楚,但您可能希望将第二项转换为int。此外,OP的数组是一个列表元组,而您的数组是一个列表元组。元组列表可能是更好的方法。Python声称我在第3行使用了无效语法,open'data.txt',r'作为f:。它特别指向open这个词。@Cosmo,我想他指的是元组列表,OP,请澄清一下。另外@Keith,open应该可以工作,除非你在其他地方重新定义它。open根本不起作用。。。我试着把它放在另一个程序中,它再次声称我有一个语法错误。正如@Cosmologicon在下面提到的,你可能希望你的数组是一个元组列表,而不是一个列表元组。请阅读这里的差异:,正如@Cosmologicon在下面提到的,您可能希望数组是一个元组列表,而不是列表的元组。请阅读此处的差异:,不需要strip,因为split将忽略多余的空白。例如,“red\n\r\t blue\n”。split给出['red',blue']。@Keith Michael:如果您确实需要一个列表元组,则将第二行更改为myarray=tuple[line.split For line in f]strip不需要,因为split将忽略多余的空白。例如,“red\n\r\t blue\n”。split提供['red',blue']。@Keith Michael:如果您确实需要列表的元组,请将第二行更改为myarray=tuple[line.split For line in f]