Trong bài viết này, chúng tôi sẽ thảo luận về các cách khác nhau để lọc nội dung từ từ điển theo các điều kiện trên các khóa hoặc giá trị hoặc trên cả hai. Giả sử chúng ta có một từ điển trong đó phần tử loại int là các phần tử loại và chuỗi chuỗi là giá trị, tức là. Bây giờ, hãy để thảo luận về các cách khác nhau để lọc nội dung của các điều kiện tùy ý từ điển này, Lọc từ điển bằng các phím trong Python Giả sử chúng ta muốn lọc từ điển bằng cách chỉ giữ các yếu tố có khóa đồng đều. Vì vậy, chúng ta chỉ có thể lặp lại tất cả các mục từ điển và thêm các phần tử có chìa khóa thậm chí vào một từ điển khác, tức là. Đầu ra: Từ điển được lọc, tức là NewDict hiện chứa các phần tử được lọc từ từ điển ban đầu, tức là các phần tử có khóa chia hết cho 2. & nbsp; tương tự chúng ta có thể có lọc có điều kiện dựa trên trường giá trị thay vì khóa. Nhưng thay vì viết mã để lặp lại và kiểm tra điều kiện nhiều lần, chúng tôi di chuyển mã sang một hàm chung và chuyển điều kiện từ bên ngoài, tức là.newDict now contains filtered elements from the original
dictionary i.e. elements whose key is divisible by 2. Similarly we can have conditional filtering based on value field instead of key. But instead of writing code for iteration and condition checking again and again, we move the code to a generic function and pass condition from outside i.e. Chức năng này chấp nhận, Quảng cáo Hàm này lặp lại trên tất cả các cặp giá trị chính trong từ điển và gọi hàm gọi lại đã cho [] trên mỗi cặp. Các mục mà hàm gọi lại [] trả về true được thêm vào từ điển mới. Cuối cùng, từ điển mới được trả lại.True are added to the new dictionary. In the end new dictionary is returned.dictOfNames = {
7 : 'sam',
8: 'john',
9: 'mathew',
10: 'riti',
11 : 'aadi',
12 : 'sachin'
}
Lọc từ điển theo các điều kiện bằng cách tạo hàm chung
dictionary and add elements with even key to an another dictionary i.e.newDict = dict[]
# Iterate over all the items in dictionary and filter items which has even keys
for [key, value] in dictOfNames.items[]:
# Check if key is even then add pair to new dictionary
if key % 2 == 0:
newDict[key] = value
print['Filtered Dictionary : ']
print[newDict]
Filtered Dictionary :
{8: 'john', 10: 'riti', 12: 'sachin'}
'''
Iterate over all the key value pairs in dictionary and call the given
callback function[] on each pair. Items for which callback[] returns True,
add them to the new dictionary. In the end return the new dictionary.
'''
def filterTheDict[dictObj, callback]:
newDict = dict[]
# Iterate over all the items in dictionary
for [key, value] in dictObj.items[]:
# Check if item satisfies the given condition then add to new dict
if callback[[key, value]]:
newDict[key] = value
return newDict
Bây giờ, hãy để sử dụng nó để lọc từ điển bằng khóa, tức là
# Filter a dictionary to keep elements only whose keys are even newDict = filterTheDict[dictOfNames, lambda elem : elem[0] % 2 == 0] print['Filtered Dictionary : '] print[newDict]
Đầu ra:
Filtered Dictionary : {8: 'john', 10: 'riti', 12: 'sachin'}
Từ điển được lọc, tức là NewDict hiện chứa các phần tử được lọc từ từ điển ban đầu, tức là các phần tử có khóa chia hết cho 2. & nbsp; tương tự chúng ta có thể có lọc có điều kiện dựa trên trường giá trị thay vì khóa. Nhưng thay vì viết mã để lặp lại và kiểm tra điều kiện nhiều lần, chúng tôi di chuyển mã sang một hàm chung và chuyển điều kiện từ bên ngoài, tức là.filterTheDict[]. It returned a new dictionary which contains elements with even keys only.
Chức năng này chấp nhận,
Quảng cáofilterTheDict[] function created above to filter the dictionary. Suppose we want to keep the elements only in dictionary whose value field contains a string of length 6. To do that let’s pass the different lambda function to filterTheDict[] i.e.
# Filter a dictionary to keep elements only whose values are string of length 6 newDict = filterTheDict[dictOfNames, lambda elem: len[elem[1]] == 6]
Đầu ra:
Filtered Dictionary : {9: 'mathew', 12: 'sachin'}
Từ điển được lọc, tức là NewDict hiện chứa các phần tử được lọc từ từ điển ban đầu, tức là các phần tử có khóa chia hết cho 2. & nbsp; tương tự chúng ta có thể có lọc có điều kiện dựa trên trường giá trị thay vì khóa. Nhưng thay vì viết mã để lặp lại và kiểm tra điều kiện nhiều lần, chúng tôi di chuyển mã sang một hàm chung và chuyển điều kiện từ bên ngoài, tức là.
Chức năng này chấp nhận,
Quảng cáo
- Một cuốn từ điển
- Một hàm chấp nhận một cặp khóa/giá trị và trả về đúng hoặc sai
Returns:
- Hàm này lặp lại trên tất cả các cặp giá trị chính trong từ điển và gọi hàm gọi lại đã cho [] trên mỗi cặp. Các mục mà hàm gọi lại [] trả về true được thêm vào từ điển mới. Cuối cùng, từ điển mới được trả lại.
Bây giờ, hãy để sử dụng nó để lọc từ điển bằng khóa, tức là
Our original dictionary is,
dictOfNames = { 7 : 'sam', 8: 'john', 9: 'mathew', 10: 'riti', 11 : 'aadi', 12 : 'sachin' }
Hàm Lambda được truyền được sử dụng làm điều kiện trong khi lọc nội dung bên trong Function FilterTHEDICT []. Nó đã trả lại một từ điển mới chỉ chứa các yếu tố chỉ có các phím.
Lọc một từ điển theo các giá trị trong Python
# Filter dictionary by keeping elements whose keys are divisible by 2 newDict = dict[filter[lambda elem: elem[0] % 2 == 0, dictOfNames.items[]]] print['Filtered Dictionary : '] print[newDict]
Đầu ra:
Filtered Dictionary : {8: 'john', 10: 'riti', 12: 'sachin'}
Từ điển được lọc, tức là NewDict hiện chứa các phần tử được lọc từ từ điển ban đầu, tức là các phần tử có khóa chia hết cho 2. & nbsp; tương tự chúng ta có thể có lọc có điều kiện dựa trên trường giá trị thay vì khóa. Nhưng thay vì viết mã để lặp lại và kiểm tra điều kiện nhiều lần, chúng tôi di chuyển mã sang một hàm chung và chuyển điều kiện từ bên ngoài, tức là.
Chức năng này chấp nhận,
newDict = dict[] # Iterate over all the items in dictionary and filter items which has even keys for [key, value] in dictOfNames.items[]: # Check if key is even then add pair to new dictionary if key % 2 == 0: newDict[key] = value print['Filtered Dictionary : '] print[newDict]1
Đầu ra:
Filtered Dictionary : {9: 'mathew', 12: 'sachin'}
Từ điển được lọc, tức là NewDict hiện chứa các phần tử được lọc từ từ điển ban đầu, tức là các phần tử có khóa chia hết cho 2. & nbsp; tương tự chúng ta có thể có lọc có điều kiện dựa trên trường giá trị thay vì khóa. Nhưng thay vì viết mã để lặp lại và kiểm tra điều kiện nhiều lần, chúng tôi di chuyển mã sang một hàm chung và chuyển điều kiện từ bên ngoài, tức là.
Chức năng này chấp nhận,
Quảng cáo
dictOfNames = { 7 : 'sam', 8: 'john', 9: 'mathew', 10: 'riti', 11 : 'aadi', 12 : 'sachin' }
Một cuốn từ điển
Một hàm chấp nhận một cặp khóa/giá trị và trả về đúng hoặc sai
newDict = dict[] # Iterate over all the items in dictionary and filter items which has even keys for [key, value] in dictOfNames.items[]: # Check if key is even then add pair to new dictionary if key % 2 == 0: newDict[key] = value print['Filtered Dictionary : '] print[newDict]4
Đầu ra:
Filtered Dictionary : {8: 'john', 10: 'riti', 12: 'sachin'}
Từ điển được lọc, tức là NewDict hiện chứa các phần tử được lọc từ từ điển ban đầu, tức là các phần tử có khóa chia hết cho 2. & nbsp; tương tự chúng ta có thể có lọc có điều kiện dựa trên trường giá trị thay vì khóa. Nhưng thay vì viết mã để lặp lại và kiểm tra điều kiện nhiều lần, chúng tôi di chuyển mã sang một hàm chung và chuyển điều kiện từ bên ngoài, tức là.
Chức năng này chấp nhận,
newDict = dict[] # Iterate over all the items in dictionary and filter items which has even keys for [key, value] in dictOfNames.items[]: # Check if key is even then add pair to new dictionary if key % 2 == 0: newDict[key] = value print['Filtered Dictionary : '] print[newDict]6
Đầu ra:
newDict = dict[] # Iterate over all the items in dictionary and filter items which has even keys for [key, value] in dictOfNames.items[]: # Check if key is even then add pair to new dictionary if key % 2 == 0: newDict[key] = value print['Filtered Dictionary : '] print[newDict]7
Từ điển được lọc, tức là NewDict hiện chứa các phần tử được lọc từ từ điển ban đầu, tức là các phần tử có khóa chia hết cho 2. & nbsp; tương tự chúng ta có thể có lọc có điều kiện dựa trên trường giá trị thay vì khóa. Nhưng thay vì viết mã để lặp lại và kiểm tra điều kiện nhiều lần, chúng tôi di chuyển mã sang một hàm chung và chuyển điều kiện từ bên ngoài, tức là.
Chức năng này chấp nhận,
- Quảng cáo
- Một cuốn từ điển
- Một hàm chấp nhận một cặp khóa/giá trị và trả về đúng hoặc sai
- Hàm này lặp lại trên tất cả các cặp giá trị chính trong từ điển và gọi hàm gọi lại đã cho [] trên mỗi cặp. Các mục mà hàm gọi lại [] trả về true được thêm vào từ điển mới. Cuối cùng, từ điển mới được trả lại.
- Bây giờ, hãy để sử dụng nó để lọc từ điển bằng khóa, tức là
- Hàm Lambda được truyền được sử dụng làm điều kiện trong khi lọc nội dung bên trong Function FilterTHEDICT []. Nó đã trả lại một từ điển mới chỉ chứa các yếu tố chỉ có các phím.
- Lọc một từ điển theo các giá trị trong Python
- Hãy để sử dụng cùng một hàm FilterThedict [] được tạo ở trên để lọc từ điển. Giả sử chúng ta muốn giữ các phần tử chỉ trong từ điển có trường giá trị chứa một chuỗi độ dài 6. Để làm điều đó, hãy để vượt qua hàm Lambda khác nhau để FilterTHEDICT [] tức là.
- Đã truyền hàm Lambda cho FilterTHEDICT [] trong đó chúng tôi chỉ kiểm tra điều kiện trên trường giá trị. Nó đã trả lại một từ điển mới có chứa các phần tử có giá trị là chuỗi độ dài 6.
- Thay vì tạo chức năng của riêng mình, chúng ta cũng có thể sử dụng hàm Python Filter Filter [].
- Hàm Filter [] chấp nhận một,
- một chuỗi có thể được lọc
- một chức năng chấp nhận một đối số và trả về bool, tức là đúng hoặc sai dựa trên logic logic của nó
- Một chuỗi mới của nội dung được lọc.
- Chúng ta cần chuyển đổi trình tự trả lại này thành Dict một lần nữa. Hãy để bộ lọc sử dụng [] để thực hiện lọc có điều kiện trên từ điển. Từ điển ban đầu của chúng tôi là,
- Lọc từ điển bằng các phím trong Python bằng Filter []
- Hãy để các mục lọc trong từ điển có các khóa thậm chí là chia hết cho 2,
- Lọc từ điển theo các giá trị trong Python bằng Filter []
- Hãy để các mục lọc trong từ điển có giá trị là chuỗi có độ dài 6,
Filter [] Chức năng lặp lại trên tất cả các phần tử trong các phần tử Dict và Filter được truyền dựa trên điều kiện được truyền dưới dạng gọi lại.
Lọc một từ điển bằng cách hiểu biết
newDict = dict[] # Iterate over all the items in dictionary and filter items which has even keys for [key, value] in dictOfNames.items[]: # Check if key is even then add pair to new dictionary if key % 2 == 0: newDict[key] = value print['Filtered Dictionary : '] print[newDict]8
Output:
Từ điển ban đầu của chúng tôi là,