Hướng dẫn python dictionary tree - cây từ điển trăn
Tôi có một từ điển Python và tôi muốn tạo ra một cây từ nó. Từ điển là một cái gì đó như thế này: Show Nội phân Chính showShow
Trong trường hợp này, gốc là "1" Tôi đã cố gắng sử dụng thư viện Treelib nhưng vấn đề khi tôi lặp lại từ điển và tạo một nút, cha mẹ của nó vẫn chưa được tạo. Ví dụ: nếu tôi muốn tạo một nút cho "2", cha mẹ của nó ("1") vẫn chưa được tạo, vì vậy không thể làm được. Bất kỳ ý tưởng? Hỏi ngày 23 tháng 12 năm 2018 lúc 14:03Dec 23, 2018 at 14:03 1 Bạn có thể làm như sau, sử dụng Treelib:
Đầu ra
Ý tưởng là chỉ thêm một nút nếu cha mẹ có mặt trong cây hoặc cha mẹ là 5. Khi cha mẹ là 5 thêm nó dưới dạng gốc.Đã trả lời ngày 23 tháng 12 năm 2018 lúc 14:15Dec 23, 2018 at 14:15 Dani Mesejodani MesejoDani Mesejo 58.5K6 Huy hiệu vàng45 Huy hiệu bạc68 Huy hiệu Đồng6 gold badges45 silver badges68 bronze badges Bạn có thể làm như sau. Đầu tiên, chuyển đổi cấu trúc dữ liệu thành ánh xạ của cha mẹ con:
Sau đó, bắt đầu với gốc
Tạo cây từ trên cùng:
Đã trả lời ngày 23 tháng 12 năm 2018 lúc 14:19Dec 23, 2018 at 14:19 user2390182user2390182user2390182 68.6K6 Huy hiệu vàng60 Huy hiệu bạc82 Huy hiệu đồng6 gold badges60 silver badges82 bronze badges Tìm hiểu về cây và cách thực hiện chúng.RễMột cây như một cấu trúc dữ liệu có thể nhanh chóng trở thành một môn toán học phức tạp (kiểm tra wiki), chúng ta được bao quanh bởi những thứ thực và ảo (thực sự dữ liệu) có thể được mô hình hóa và biểu diễn bởi một cây Hiểu ngay cả ở cấp độ cơ bản. Sử dụng DefaultDict tích hợp của Python, chúng tôi có thể dễ dàng xác định cấu trúc dữ liệu cây: def tree(): return defaultdict(tree) Đó là nó! Nó chỉ đơn giản nói rằng một cây là một dict có giá trị mặc định là cây. (Nếu bạn đang theo dõi ở nhà, hãy đảm bảo 7). Ví dụJSON-esqueBây giờ chúng ta có thể tạo ra các từ điển lồng nhau của JSON-esque mà không cần tạo ra các từ điển phụ, họ đã tồn tại một cách kỳ diệu khi chúng ta tham khảo chúng: users = tree() users['harold']['username'] = 'hrldcpr' users['handler']['username'] = 'matthandlersux' Chúng tôi có thể in cái này dưới dạng JSON với 8 và chúng tôi nhận được dự kiến:{"harold": {"username": "hrldcpr"}, "handler": {"username": "matthandlersux"}} Mà không cần chỉ địnhChúng ta thậm chí có thể tạo cấu trúc mà không có bài tập nào cả, vì chỉ tham khảo một mục nhập tạo ra nó: taxonomy = tree() taxonomy['Animalia']['Chordata']['Mammalia']['Carnivora']['Felidae']['Felis']['cat'] taxonomy['Animalia']['Chordata']['Mammalia']['Carnivora']['Felidae']['Panthera']['lion'] taxonomy['Animalia']['Chordata']['Mammalia']['Carnivora']['Canidae']['Canis']['dog'] taxonomy['Animalia']['Chordata']['Mammalia']['Carnivora']['Canidae']['Canis']['coyote'] taxonomy['Plantae']['Solanales']['Solanaceae']['Solanum']['tomato'] taxonomy['Plantae']['Solanales']['Solanaceae']['Solanum']['potato'] taxonomy['Plantae']['Solanales']['Convolvulaceae']['Ipomoea']['sweet potato'] Lần này chúng tôi sẽ yêu cầu chúng tôi chuyển đổi sang tiêu chuẩn trước tiên: 0Bây giờ chúng ta có thể tạo ra cấu trúc với 9: 1Vì vậy, các cấu trúc cơ sở mà chúng tôi tham khảo bây giờ tồn tại như các dicts, với các dicts trống ở lá. Lặp đi lặp lạiCây này có thể thú vị khi lặp đi bộ, một lần nữa bởi vì cấu trúc ra đời đơn giản bằng cách đề cập đến nó. Ví dụ: giả sử chúng ta đang phân tích danh sách các động vật mới để thêm vào phân loại của chúng ta ở trên, vì vậy chúng ta muốn gọi một chức năng như: 2Chúng ta có thể thực hiện điều này đơn giản như: 3Một lần nữa, chúng tôi không bao giờ gán cho từ điển, nhưng chỉ bằng cách tham chiếu các khóa chúng tôi đã tạo ra cấu trúc mới của mình: 4Sự kết luậnĐiều này có lẽ không hữu ích lắm và nó tạo ra một số mã bối rối (xem 0 ở trên).Nhưng nếu bạn thích Python thì tôi hy vọng điều này thật thú vị khi nghĩ về hoặc đáng để hiểu. Có một cuộc thảo luận tốt về ý chính này trên tin tức tin tức. Làm thế nào để bạn tạo một danh sách cây trong Python?Đưa ra một danh sách các danh sách, hãy viết một chương trình Python để chuyển đổi danh sách danh sách đã cho thành một từ điển giống như cây ... Examples:. Phương pháp số 1: Phương pháp ngây thơ. Đây là một cách tiếp cận ngây thơ trong đó chúng tôi sử dụng hai vòng cho các vòng lặp để vượt qua danh sách danh sách. .... Phương pháp số 2: Sử dụng giảm (). Có phải cây là một từ điển trong Python?Vì Python không thực hiện cây cho chúng tôi, chúng tôi sẽ xác định chúng bằng cách sử dụng từ điển. Mỗi nút của cây sẽ là một từ điển có hai phím. Phím đầu tiên là chuỗi "giá trị", ánh xạ tới giá trị trong nút.. Each node of the tree will be a dictionary that has two keys. The first key is the string "value", which maps to the value in the node. Bạn có thể biến một từ điển thành một python danh sách không?Bạn có thể biến một từ điển thành một chuỗi không?The items() method basically converts a dictionary to a list along with that we can also use the list() function to get a list of tuples/pairs. Bạn có thể biến một từ điển thành một chuỗi không?Trong trường hợp này, gốc là "1". This method can be used if the dictionary's length is not too big. The str() method of Python is used to convert a dictionary to its string representation. |