2015-02-09 24 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