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

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

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

Tôi có một từ điển sâu khổng lồ đại diện cho một khu rừng (nhiều cây không nhị phân) và tôi muốn xử lý khu rừng và tạo một tệp văn bản chứa tất cả các mối quan hệ có thể có của khu rừng, ví dụ như đưa ra từ điển:

{'a': {'b': {'c': {}, 'd': {}}, 'g': {}}}

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

abc
bụng
ag

Lưu ý rằng từ điển lồng nhau có kích thước lớn và việc lặp lại nó một cách đệ quy sẽ gây ra lỗi thời gian chạy bộ nhớ.

Những gì tôi cố gắng làm là chuyển đổi đệ quy từ điển thành danh sách các danh sách, điều này tạo ra lỗi thời gian chạy. Mã số:

def return_list(rừng):
cho ent trong forest.keys():
lst = [new_ent] + Grab_children(forest[ent])
sản lượng cuối cùng

def grap_children(cha):
local_list = []
cho khóa, giá trị trong cha.items():
local_list.append(new_key)
local_list.extend(grab_children(value))
trả về local_list

Lỗi: "Vượt quá độ sâu đệ quy tối đa khi so sánh"Lỗi thời gian chạy

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

Không đệ quy, với máy phát điện và tấm bạt lò xo (ghi vào tệp):

data = {'a': {'b': {'c': {}, 'd': {}}, 'g': {}}}


def write_dict(d, s=(), f_out=None):
nếu len(d) == 0:
nếu f_out:
f_out.write(' '.join(s) + '\n')
trở lại

đối với k, v bị đảo ngược(list(d.items())):
mang lại write_dict, v, s + (k, ), f_out


với open('data_out.txt', 'w') là f_out:

ngăn xếp = [write_dict(dữ liệu, f_out=f_out)]

trong khi ngăn xếp:
thử:
v = tiếp theo(ngăn xếp[-1])
ngoại trừ StopIteration:
xóa ngăn xếp [-1]
Tiếp tục

stack.insert(-1, v[0](v[1], v[2], v[3]))

Tập tin chứa:

abc
bụng
ag

Về python - viết một từ điển lồng sâu (rừng) vào một tệp văn bản, 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/51500003/

26 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