如何获取多个列表并嵌套它们?

时间:2014-07-20 05:40:28

标签: python list python-2.7 nested-lists

目前正在处理一个读入python的文本文件,然后必须用列表制作列表(嵌套我想?)到目前为止,我已经尝试过双重拆分文件但无济于事。这就是读者代码的样子:

def populationreader():
    with open("PopulationofAnnecy", "r") as in_file:
        for lines in in_file:
            Nested = lines.split(',')
            print Nested

从此我得到了结果:

['State', ' Total #', '% passed', '%female\n']
['Alabama', '126', '79', '17\n']
['Alaska', '21', '100', '10\n']
['Arizona', '190', '59', '16\n']
['Arkansas', '172', '49', '28\n']
etc...

我将如何删除第一行,删除\ n并嵌套列表,使它们看起来更像这样:

[[“Alabama”, 126, 79, 17], [“Alaska”, 21, 100, 10] …. ]

4 个答案:

答案 0 :(得分:1)

在拆分它之前strip

def populationreader():
    with open("PopulationofAnnecy", "r") as in_file:
        for lines in in_file:
            Nested = lines.strip().split(',')

            print Nested

制作可以使用的整数

[int(i) if i.isdigit() else i for i in nested]

答案 1 :(得分:1)

首先,您必须声明要存储元素的列表:

result = []

然后,由于lines.split(',')将返回字符串的列表,因此您必须将它们转换为整数。为此,您可以将列表的元素分配给单独的变量:

a,b,c,d = lines.split(',')

然后转换您想要的那些,并将它们作为列表附加到result

result.append([a, int(b), int(c), int(d)])

答案 2 :(得分:1)

您可以使用列表推导来创建嵌套列表:

def populationreader():
    with open("PopulationofAnnecy", "r") as in_file:
        nested = [line.strip().split(',') for line in in_file][1:]

答案 3 :(得分:0)

1.使用strip

删除\n

2.使用append将各行添加到结果列表中;从索引1开始跳过第一行。

    def populationreader():
        Nested = []
        with open("PopulationofAnnecy", "r") as in_file:
            for lines in in_file[1:]:
                Nested.append(lines.split(',').strip())
        print Nested