簡體   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