Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于Python中的文本文件到数组_Python_Arrays_Text - Fatal编程技术网

关于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]