用Python读取文件后创建的列表为空

0 投票
2 回答
912 浏览
提问于 2025-05-01 03:42

我正在使用以下代码从一个文件中读取数据:

G={}
for line in fin: # load data, create adj lists
    lst=[]
    size= len(line)
    i=0
    while (i<size):
        if line[i] in ' \t\r\n': pass
        else:
            lst.append(int(line[i:i+2].strip()))
            i=i+1
        i=i+1
    G[lst[0] ]=lst[1:]

print(G)

但是G总是为空。"foo1.txt"这个文件里包含以下数据:

1 15
2 6 10
3 10
4 9
5 
暂无标签

2 个回答

1

我写了一段替代代码,用来从文件中将数据添加到列表里,如果你需要这段代码可以参考一下:

   f = open('filename')

   dic = []

   for l in f:

       v = l.split(' ')
       v= map(lambda s: s.strip(), v)


      dic=dic+v


  print dic

输出结果:

   ['1', '15', '2', '6', '10', '3', '10', '4', '9', '5', '']
0

试试这个,我觉得这是最符合Python风格的写法:

fin = open("foo1.txt")
G={}
for line in fin: # load data, create adj lists
    lst = line.split()
    lst = [int(x) for x in lst]
    G[lst[0] ]=lst[1:]
print(G)

撰写回答