- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 Python 字典,在迭代中增加层数。
我想遍历最后一层中存在的值。
假设这个字典:
d = {'a':{'a':2},'b':{'c':2},'x':{'a':2}}
#the intuitive solution is
for key1,val in d.items():
for key2,val2 in val.items():
#integer value in val2, HOORAY
现在,如果我们添加一个层,循环将进行:
d = {'a':{'a':{'y':2}},'b':{'c':{'a':5}},'x':{'a':{'m':6}}}
#the intuitive solution is
for key1,val in d.items():
for key2,val2 in val.items():
for key3,val3 in val2.items():
#integer value in val3
我寻找任意维度迭代的动态解
如果有帮助,请考虑迭代中所有元素已知和固定的层数。
另外我想知道一个整数是如何映射到字典中的。
câu trả lời hay nhất
最好使用递归解决这个问题:
def iter_leafs(d):
for key, val in d.items():
if isinstance(val, dict):
yield from iter_leafs(val)
khác:
yield val
示例用法:
>>> d = {'a':{'a':{'y':2}},'b':{'c':{'a':5}},'x':{'a':{'m':6}}}
>>> list(iter_leafs(d))
[6, 5, 2]
如果您还想跟踪 key :
def iter_leafs(d, keys=[]):
for key, val in d.items():
if isinstance(val, dict):
yield from iter_leafs(val, keys + [key])
khác:
yield keys + [key], val
>>> list(iter_leafs(d))
[(['x', 'a', 'm'], 6), (['b', 'c', 'a'], 5), (['a', 'a', 'y'], 2)]
关于python - 遍历 Python 中任意分层字典的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33724342/
Tôi chỉ muốn giá trị quốc gia và vốn hóa. Đây là mã hoàn chỉnh của tôi: city = { 'rotterdam': { 'country': 'netherlands',
Muốn hiểu rõ hơn cách so sánh khóa của các loại đối tượng. dicOverall.exists(dic2) trả về Sai, trong khi dicOverall.exists(dic1) trả về True. Tôi không chắc lắm về .Exists như trong
Tôi mới làm quen với lập trình và python và tôi không biết cách giải quyết vấn đề này. my_dict = {'hổ': ['móng vuốt', 'răng sắc', 'bốn chân', 'sọc'
Câu hỏi này đã có câu trả lời: Truy cập thuộc tính đối tượng bằng tên được tính toán động (19 câu trả lời) Đã đóng 8 năm trước. Tôi đã trích dẫn bài viết này
Hy vọng ai đó có thể giúp đỡ. Tôi đang sử dụng Python và tôi muốn có thể thực hiện những việc sau. Tôi có một tập hợp các đối tượng (ví dụ: hình dạng) và một loạt lệnh tác động lên các đối tượng đó. Định dạng của lệnh là một chuỗi lệnh theo sau là một số lượng đối số thay đổi, có thể là chuỗi hoặc số nguyên, chẳng hạn như hình "hình chữ nhật"
Tôi có một từ điển được lưu trong một tập tin. Tôi đã tải từ điển vào bộ nhớ từ shell tương tác python và màn hình hệ thống của tôi cho thấy quá trình python tiêu tốn 4GB. Lệnh sau cho kết quả đầu ra sau: size1 = sys.getsiz
Nếu tôi chạy đoạn mã sau: import json foo = [ { "name": "Bob", "occupation": "", "stand
Tôi cố gắng lấy tên cột và chỉ mục của chúng rồi lưu kết quả dưới dạng khung dữ liệu hoặc từ điển: df <- data.frame(a=rnorm(10), b=rnorm(10), c=rnorm(10)) Làm sao có thể Tôi làm vậy? Cảm ơn. cột
Tôi đang cố gắng lấy dữ liệu đầu vào và nếu thông tin đăng nhập từ điển có khóa khớp với dữ liệu đầu vào của tôi, tôi muốn trả về giá trị của khóa đó. logins = { 'admin':'admin', 'turtle':'password1
Có một điều tuyệt vời trong thế giới Perl được gọi là CPAN. Đó là một kho lớn các thư viện Perl nguồn mở. Tôi đang sử dụng các mô-đun từ CPAN mà tôi đã tự phân phối một số bản phân phối.
Câu hỏi này đã có câu trả lời: Có lệnh Python không có giá trị không? (3 câu trả lời) Đã đóng 3 năm trước. Tôi gặp sự cố khi muốn theo dõi một số lượng lớn giá trị. Nếu tôi không bao giờ gặp phải giá trị, tôi sẽ làm
Tự hỏi nếu điều này là có thể. Chúng tôi có thư viện của bên thứ 3 chứa thông tin nhận dạng về người dùng... Tương tác chính với thư viện là thông qua HashTable lấy một chuỗi làm khóa và trả về biểu đồ các đối tượng thông tin cho khóa đó. Vấn đề là, khóa rõ ràng phân biệt chữ hoa chữ thường
Tôi mới làm quen với lập trình .NET. Xin lỗi nếu câu hỏi này đã được hỏi trước đây. Tôi hiện đang học F#. Sự khác biệt giữa Từ điển, Hashtable và Bản đồ là gì? Khi nào tôi nên sử dụng nó? Tôi có một điều khác không được đề cập trong tiêu đề
Tôi đang cố gắng sử dụng SVM để phân loại 3 lớp. Với mục đích này, tôi đang chuẩn bị từ vựng trong quá trình đào tạo SVM. Tuy nhiên, vì tôi nhận được kết quả ngẫu nhiên trong quá trình dự đoán SVM nên tôi nghi ngờ có vấn đề nào đó trong phương pháp tạo từ vựng của mình. Code tạo từ vựng của mình như sau: //Mát trai
Như hiện tại, câu hỏi này không hoàn toàn phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi hy vọng câu trả lời sẽ được hỗ trợ bởi các sự kiện, trích dẫn hoặc kiến thức chuyên môn, nhưng câu hỏi có thể gây ra tranh luận, tranh luận, bỏ phiếu hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập
Giả sử tôi có một từ điển lồng nhau có dạng: {'geo': {'bgcolor': 'white','lakecolor': 'white','caxis': {'gridcolor': 'white', 'l
Tôi có một ứng dụng java khởi động và dừng hàng trăm triệu mục (được gọi từ các tập lệnh bên ngoài) nhiều lần mỗi giây. Đầu vào: Khóa chuỗi Đầu ra: giá trị int Mục đích của ứng dụng này là hoạt động trên Bản đồ không bao giờ thay đổi mãi mãi (~30
Tôi đang cố gắng tìm ra những ưu điểm và khả năng tương đối của từ điển so với các bộ và mảng. Tôi đã tìm thấy một bài viết hay ở đây nhưng không thể tìm thấy một bảng đơn giản so sánh tất cả các tính năng khác nhau. Có ai biết không? Câu trả lời hay nhất Xem bảng bên dưới để có sự so sánh hữu ích giữa các bộ và từ điển. (Nên
Tôi muốn một từ điển trả về một giá trị được chỉ định cho bất kỳ khóa nào không có trong từ điển, ví dụ: var dict = new DictWithDefValues("not được chỉ định");
Tôi mới làm quen với python và vẫn đang học cách xử lý danh sách và từ điển. Tôi có hai hàm này def food_database(item_name, size_serv,calor_serv, prot
Tôi là một lập trình viên xuất sắc, rất giỏi!