python中字典存储无向图节点

Seeingsunshine 2017-11-22 09:59:30
我想遍历一个文本文件中存储的每一条边的两个节点,然后把每个节点值作为一个键,跟它相连的节点作为值存在一个列表中
文本文件如下
1,2
1,4
1,6
1,7
1,8
1,9
2,3
3,4
4,5
5,6
7,12
8,14
10,11
10,12
10,13
10,14
14,17
15,16
16,17
17,26
18,19
18,23
18,25
19,20
20,21
21,22
22,23
23,24
24,25
24,29
25,28
27,28
27,29
27,30
27,32
27,33
29,30
30,31
30,32
32,33
代码如下
nodes = {'1': ['3'], '2': ['3']} #给字典作了初始化
nodefile = '/home/hadoop/nodeInfo.txt'
with open(nodefile) as fb:
for line in fb:
listlink = line.rstrip().split(',')
for keys, values in nodes.items():
if listlink[0] == keys:
nodes[keys] = list(values).append(listlink[1]) #遇到键相同时,只把节点存储到值列表里去
else:
nodes.setdefault(listlink[0], [listlink[1]]) #如果在字典中没有找到与之相同的键,则作为一个新的键值对存储进去。
print(nodes)


当运行时出现了这样的问题:
File "/home/hadoop/pycharmproject/readnode.py", line 12, in <module>
nodes[keys] = list(values).append(listlink[1])
TypeError: 'NoneType' object is not iterable
这该如何解决
...全文
891 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnusw 2019-05-20
  • 打赏
  • 举报
回复
list.append()返回nonetype 所以就会报错 先添加后赋值就可以了
2bebetter 2019-05-09
  • 打赏
  • 举报
回复
list.append()返回nonetype 所以就会报错 先添加后赋值就可以了

1,261

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧