[英]Trying to implement numbers from text file, into adjacency list project in python
[英]Python - adjacency list from text file into a dictionary
使用networkx,我可以生成一個代表圖形鄰接列表的文本文件。 我需要將文本文件轉換成字典。 所以關鍵是每行最左邊的數字,它是該行右邊數字的 rest 的值列表。 值列表有時可能為空。 我們可以調用輸入文件test.txt。 謝謝!
例如,這就是我要查找的內容:{1: [], 2: [3,7], 3: [4,7,9], 4: [7,9], 9: []}
這是生成的要轉換的文本文件:
#adjlist.py
# GMT Tue May 26 14:48:55 2020
#
1
2 3 7
3 4 7 9
4 7 9
7 9
9
使用open()
function 讀取文本文件很簡單。 我建議使用.read()
方法而不是遍歷打開的文件來讀取行,因為將文件批量讀取到 memory 比從磁盤上的文件中遍歷行要快得多。 當然,如果文件小於您的 RAM。 .strip()
返回刪除前導和尾隨字符的字符串副本。 .split()
使用給定的分隔符拆分,這里我們使用\n
將文件拆分為行。
最后,我們遍歷每一行並在該行上調用.split()
,這次按空格分割。 這將返回一個項目列表,其中[0]
索引項目將是您的鍵,而 rest ( [1:]
) 將是您的值。
您可以使用collections
內置庫中的defaultdict
來實現單個字典鍵的多個項目。
from collections import defaultdict
with open("test.txt") as f:
lines = f.read().strip().split("\n")
d = defaultdict(list)
for line in lines:
ls = line.split(" ")
d[ls[0]] = ls[1:]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.