目前正在处理一个读入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] …. ]
答案 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