def read_ndfa(file : open) -> {str:{str:{str}}}:
pass
file =
start;0;start;1;start;0;near
near;1;end
end
正确输出= {'end': {}, 'start': {'1': {'start'}, '0': {'start', 'near'}}, 'near': {'1': {'end'}}}
我需要编写一个函数,它将文件作为输入来获得如上所述的正确输出。但是,我不知道如何使用zip函数创建内部字典。有人能告诉我正确的方法吗?非常感谢。
答案 0 :(得分:0)
你可以看看这个:
import csv
f = open('data.csv', 'r')
r = csv.reader(f, delimiter=';')
out = {}
for row in r:
out[row[0]] = {} # Set the top level key
# Loop on all odd elements
for pos in range(1, len(row), 2):
if row[pos] in out[row[0]]:
# Add the element to the existing set
out[row[0]][row[pos]].add(row[pos+1])
else:
# Create a new set for the key
out[row[0]][row[pos]] = set([row[pos+1]])
print(out)
f.close()
给出了:
{'near': {'1': {'end'}}, 'end': {}, 'start': {'0': {'near', 'start'}, '1': {'start'}}}