繁体   English   中英

Python dict的邻接列表

[英]Adjacency list from Python dict

我需要输出一个Python字典作为邻接表:两列,一列-键,另一列-值; 像这样:

Key1, Value1
Key2, Value2

我的字典包含字符串作为键和整数作为值。 希望这些行可以解决问题:

with open('Adjacency_list_indegrees.csv', 'wb') as ff:
    ff.write('\n')
    for key, values in deg_new.items():
        for value in values:
            ff.write('{},{}'.format(key, value))
            ff.write('\n')

但是,我遇到了一个错误

 TypeError: 'int' object is not iterable

这是否意味着我必须转换整数值?

您试图遍历这些值,这些值是整数而不是列表。 您根本不需要在这里做; 将您的清单简化为:

for key, value in deg_new.items():
    ff.write('{},{}\n'.format(key, value))

您似乎也正在重新发明轮子。 有一个完美可维护的csv模块可以完成此任务:

import csv

with open('Adjacency_list_indegrees.csv', 'wb') as ff:
    writer = csv.writer(ff)
    ff.writerows(deg_new.items())

deg_new写入deg_new中的所有键值对。

deg_new.items()将为您提供字典中的键,值对

例如

key1, value1
key2, value2
...

然后,您不必尝试遍历这些值。 您已经一次让他们一个。

因此,您可以执行以下操作:

for key, value in deg_new.items():
    ff.write('{},{}\n'.format(key, value))

可能有些值不是列表/元组,而是整数。 对于这些情况,您应该使用try .. except 试试下面的代码:

with open('Adjacency_list_indegrees.csv', 'wb') as ff:
    ff.write('\n')
    for key, values in deg_new.items():
        try:
            for value in values:
                ff.write('{},{}'.format(key, value))
                ff.write('\n')
        except:
            ff.write('{},{}'.format(key, values))
            ff.write('\n')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM