[英]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.