cuốn sách gpt4 ai đã làm

Viết một từ điển lồng nhau sâu (rừng) vào tệp văn bản kiểu BFS

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 00:12:26 28 4
mua khóa gpt4 Nike

Tiếp tục với câu hỏi cũ của tôi: Viết từ điển lồng nhau (rừng) có độ sâu lớn vào tệp văn bản

Bây giờ tôi muốn viết giao rừng theo kiểu BFS: Tôi có một từ điển sâu khổng lồ đại diện cho rừng (nhiều cây không nhị phân) và tôi muốn xử lý rừng và tạo một tệp văn bản chứa một chuỗi các quan hệ (cha, con) từ rừng, tức là Cho từ điển:

{'a': {'b': {'c': {'x': {}}, 'd': {'p': {}}}, 'g': {}, 'f': { }},
't': {'r': {'o': {}}, 'y': {}}}

Tệp văn bản được tạo trông như thế này:

(ROOT,b) (ROOT,g) (ROOT,f) (b,c) (b,d) (c,x) (d,p) \n
(ROOT,r) (ROOT,y) (r,o) \n

Lưu ý rằng tôi đã thay thế tất cả các rễ trong rừng bằng từ "ROOT".

Đây là một hình dung đơn giản của khu rừng: phát âm rừng

Từ điển lồng nhau có kích thước lớn và việc lặp lại nó theo cách đệ quy sẽ gây ra lỗi thời gian chạy trong bộ nhớ, vì vậy tốt hơn nên sử dụng giải pháp "kiểu trình tạo" trong liên kết ở đầu câu hỏi này.

câu trả lời hay nhất

d = {'a': {'b': {'c': {'x': {}}, 'd': {'p': {}}}, 'g': {}, 'f' : {}}, 't': {'r': {'o': {}}, 'y': {}}}
với open('file', 'w') là f:
cho r, s trong d.items():
q = []
p=r
while True:
cho k, v trong s.items():
f.write('(%s,%s) ' % ('ROOT' if p == r else p, k))
nếu v:
q.append((k, v))
nếu không q:
break
p, s = q.pop(0)
f.write('\n')

Đầu ra này:

(ROOT,b) (ROOT,g) (ROOT,f) (b,c) (b,d) (c,x) (d,p) 
(GỐC,r) (GỐC,y) (r,o)

Về python - viết một từ điển (rừng) được lồng sâu vào tệp văn bản kiểu BFS, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/52060788/

28 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress