2015-02-09 57 views
1

所以我给出的名称和号码这样的txt文件:Python的嵌套列表和列表内涵

Sam 24 
John 30 
Rob 44 

,我需要将其转换成使用列表理解,看起来像这样一个嵌套列表:

[["Sam","24"],["John","30]....] 

(我再插这个成打印出来的程序)

目前我已经得到了这么远

names = [[name,age] for name in open("people.txt","r").read().split() if name.isalpha()\ 
     for age in open("people.txt","r").read().split() if age.isdigit()] 

基本上给了我一些我需要的东西,但是后半部分循环方式太多了。来自这里的任何想法?我有点难住。

+0

'.read()分裂() '扔掉有关线路的有用信息。为什么不逐行阅读文件? – 2015-02-09 03:37:19

回答

5

您正在阅读文件两次;获得在一个迭代的名称,并在第二次迭代获取的年龄

相反,这可以在一个迭代中完成了一个简单的列表理解:

with open("people.txt","r") as f: 
    names = [t.split() for t in f] 
+0

'names = [t.split()for t in f]'更简单 – 2015-02-09 03:38:33

+0

@ JohnLaRooy-AKAgnibbler感谢专家提示:) – 2015-02-09 03:41:27