Hướng dẫn python filter nested dictionary - từ điển lồng nhau bộ lọc python

Tôi là một từ điển lồng nhau.

>>> foo = {'m': {'a': 10}, 'n': {'a': 20}}
>>> 

Tôi muốn lọc các giá trị cụ thể, dựa trên các giá trị của 'A'.

Tôi có thể sử dụng toàn bộ danh sách cho mục đích.

>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 

Sử dụng danh sách một mình cung cấp cho tôi các yếu tố từ FOO [chứ không phải các giá trị của các yếu tố] - như mong đợi:

>>> list[filter[lambda x: foo[x] if foo[x]['a']==10 else None,foo]]
['m']
>>> 

Sử dụng bản đồ trả về tôi các giá trị 'Không' không mong muốn:

>>> list[map[lambda x: foo[x] if foo[x]['a']==10 else None,foo]]
[{'a': 10}, None]
>>> 

Kết hợp hai cái này, tôi có thể lấy giá trị mong muốn. Nhưng tôi đoán FOO được lặp lại hai lần - một lần mỗi lần cho bộ lọc và bản đồ. Giải pháp hiểu danh sách cần tôi lặp lại một lần.

>>> list[map[lambda t: foo[t], filter[lambda x: foo[x] if foo[x]['a']==10 else None,foo]]]
[{'a': 10}]
>>> 

Đây là một cách tiếp cận khác chỉ sử dụng bộ lọc. Điều này mang lại cho tôi các giá trị mong muốn nhưng tôi không chắc liệu việc lặp lại các giá trị của từ điển có phải là một cách tiếp cận tốt/pythonic:

>>> list[filter[lambda x: x if x['a'] == 10 else None, foo.values[]]]
[{'a': 10}]
>>> 

Tôi muốn biết nếu:

  1. Cách tiếp cận pythonic/được đề xuất cho kịch bản này là gì?
  2. Nếu ví dụ cuối cùng sử dụng bộ lọc trên các giá trị từ điển là chấp nhận được?

Trân trọng

Sharad

Trong bài viết này, chúng tôi sẽ thảo luận về cách lặp lại một từ điển lồng nhau trong Python.

Nội dung chính ShowShow

  • Làm thế nào để bạn lặp lại một từ điển lồng nhau trong Python?
  • Tôi có thể sử dụng cho vòng lặp cho từ điển trong Python không?
  • Từ điển trong Python có thể được lồng không?
  • Làm thế nào để bạn nhận được một giá trị từ một python từ điển lồng nhau?

Các giá trị truy cập bằng cách sử dụng get [] Một cách khác để truy cập [các] giá trị trong từ điển lồng nhau [nhân viên] là sử dụng phương thức Dict.get [].Phương thức này trả về giá trị cho một khóa được chỉ định.Nếu khóa được chỉ định không tồn tại, phương thức get [] sẽ không trả về không [ngăn chặn một keyerror].use the dict.get[] method. This method returns the value for a specified key. If the specified key does not exist, the get[] method returns None [preventing a KeyError ].

Trong bài viết này, chúng tôi sẽ thảo luận về cách lặp lại một từ điển lồng nhau trong Python.

Nội dung chính Show

Làm thế nào để bạn lặp lại một từ điển lồng nhau trong Python?

Từ điển lồng nhau có nghĩa là từ điển bên trong một từ điển và chúng ta sẽ thấy mọi cách có thể lặp lại trên cấu trúc dữ liệu như vậy. & NBSP;

Từ điển lồng nhau đang được sử dụng:

Syntax:

for i in dictionary_name:
     print[dictionary_name[i]]

{‘Sinh viên 1,: {‘ Tên: ‘Bobby,’ id,

  • ‘Sinh viên 2,: {’ tên,: ‘Ojaswi,‘ id,: 2, ’tuổi: 22}, & nbsp;
  • ‘Sinh viên 3,: {’ tên

Đối với điều này, chúng tôi sẽ sử dụng cho vòng lặp để lặp lại thông qua một từ điển để có được tất cả các khóa, giá trị của từ điển lồng nhau.: Python program to get the nested dictionaries from a dictionary

Python3

ở đâu

từ điển_name là từ điển đầu vào

từ điển_name [i] là giá trị để nhận từ điển

>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
30
>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
270
>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
271

Output:

{'Name': 'Bobby', 'Id': 1, 'Age': 20}
{'Name': 'ojaswi', 'Id': 2, 'Age': 22}
{'Name': 'rohith', 'Id': 3, 'Age': 20}

Ví dụ: Chương trình Python để lấy từ điển lồng nhau từ một từ điển: Python program to get the nested dictionaries from a dictionary

>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
27
>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
28
>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
29

Syntax:

data[i].keys[]

Các Python program to get keys from the nested dictionary

Python3

ở đâu

từ điển_name là từ điển đầu vào

từ điển_name là từ điển đầu vào

từ điển_name [i] là giá trị để nhận từ điển

>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
30
>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
270

{'Name': 'Bobby', 'Id': 1, 'Age': 20}
{'Name': 'ojaswi', 'Id': 2, 'Age': 22}
{'Name': 'rohith', 'Id': 3, 'Age': 20}
17

Output:

>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
5

Ví dụ: Chương trình Python để lấy từ điển lồng nhau từ một từ điển: Python program to get the nested dictionaries from a dictionary

Syntax:

>>> list[filter[lambda x: foo[x] if foo[x]['a']==10 else None,foo]]
['m']
>>> 
1

>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
27
>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
28
>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
29
Python program to get values from the nested dictionary

Python3

ở đâu

từ điển_name là từ điển đầu vào

>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
30
>>> [foo[n] for n in foo if foo[n]['a'] == 10]
[{'a': 10}]
>>> 
270

{'Name': 'Bobby', 'Id': 1, 'Age': 20}
{'Name': 'ojaswi', 'Id': 2, 'Age': 22}
{'Name': 'rohith', 'Id': 3, 'Age': 20}
73

Output:

từ điển_name [i] là giá trị để nhận từ điển

Làm thế nào để bạn lặp lại một từ điển lồng nhau trong Python?

Ví dụ: Chương trình Python để lấy từ điển lồng nhau từ một từ điển: Python program to get the nested dictionaries from a dictionaryUsing the function nested_dict_pair_iterator[] we iterated over all the values of a dictionary of dictionaries and printed each pair including the parent keys.

Tôi có thể sử dụng cho vòng lặp cho từ điển trong Python không?

Bạn có thể lặp qua một từ điển bằng cách sử dụng một vòng lặp.Khi lặp qua từ điển, giá trị trả về là các khóa của từ điển, nhưng cũng có các phương pháp để trả về các giá trị.. When looping through a dictionary, the return value are the keys of the dictionary, but there are methods to return the values as well.. When looping through a dictionary, the return value are the keys of the dictionary, but there are methods to return the values as well.

Từ điển trong Python có thể được lồng không?

Trong Python, một từ điển lồng nhau có thể được tạo ra bằng cách đặt các từ điển được phân tách bằng dấu phẩy được đặt trong niềng răng.a Nested dictionary can be created by placing the comma-separated dictionaries enclosed within braces.a Nested dictionary can be created by placing the comma-separated dictionaries enclosed within braces.

Làm thế nào để bạn nhận được một giá trị từ một python từ điển lồng nhau?

Các giá trị truy cập bằng cách sử dụng get [] Một cách khác để truy cập [các] giá trị trong từ điển lồng nhau [nhân viên] là sử dụng phương thức Dict.get [].Phương thức này trả về giá trị cho một khóa được chỉ định.Nếu khóa được chỉ định không tồn tại, phương thức get [] sẽ không trả về không [ngăn chặn một keyerror].use the dict.get[] method. This method returns the value for a specified key. If the specified key does not exist, the get[] method returns None [preventing a KeyError ].use the dict. get[] method. This method returns the value for a specified key. If the specified key does not exist, the get[] method returns None [preventing a KeyError ].

Bài Viết Liên Quan

Chủ Đề