Python嵌套列表和列表推导

时间:2015-02-09 03:32:12

标签: python list-comprehension nested-lists

所以我给了一个带有名字和数字的txt文件:

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()]

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

1 个答案:

答案 0 :(得分:5)

您目前正在阅读该文件两次;在一次迭代中获取名称,并在第二次迭代中获取年龄

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

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