Hướng dẫn find max value in list of dictionaries python - tìm giá trị tối đa trong danh sách python từ điển

127

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một danh sách các từ điển như vậy:

[{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

Tôi muốn tìm giá

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
6 và
lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
7. Bây giờ, tôi có thể sắp xếp điều này đủ dễ dàng bằng cách sử dụng một khóa với biểu thức Lambda (như được tìm thấy trong một bài tràn ngăn xếp khác), vì vậy nếu không có cách nào khác tôi không bị mắc kẹt. Tuy nhiên, từ những gì tôi đã thấy, hầu như luôn có một cách trực tiếp trong Python, vì vậy đây là cơ hội để tôi học thêm một chút.

Hướng dẫn find max value in list of dictionaries python - tìm giá trị tối đa trong danh sách python từ điển

Tomerikoo

16.7K15 Huy hiệu vàng38 Huy hiệu bạc55 Huy hiệu Đồng15 gold badges38 silver badges55 bronze badges

hỏi ngày 16 tháng 3 năm 2011 lúc 3:56Mar 16, 2011 at 3:56

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])

Điều này cho bạn biết không chỉ giá tối đa là gì mà còn là mặt hàng nào đắt nhất.

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 14:20Mar 16, 2011 at 14:20

Hugh Bothwellhugh BothwellHugh Bothwell

53,9K7 Huy hiệu vàng81 Huy hiệu bạc98 Huy hiệu Đồng7 gold badges81 silver badges98 bronze badges

8

Có một số lựa chọn. Đây là một điều thẳng thắn:

seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)

[Edit]

Nếu bạn chỉ muốn lặp lại trong danh sách một lần, bạn có thể thử điều này (giả sử các giá trị có thể được biểu diễn là

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
8s):

import sys

lo,hi = sys.maxint,-sys.maxint-1
for x in (item['the_key'] for item in dict_list):
    lo,hi = min(x,lo),max(x,hi)

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 4:01Mar 16, 2011 at 4:01

dappawitdappawitdappawit

11.7K2 Huy hiệu vàng31 Huy hiệu bạc26 Huy hiệu đồng2 gold badges31 silver badges26 bronze badges

4

Tôi nghĩ rằng biểu hiện trực tiếp nhất (và pythonic) nhất sẽ giống như:

min_price = min(item['price'] for item in items)

Điều này tránh được chi phí sắp xếp danh sách - và, bằng cách sử dụng biểu thức máy phát, thay vì hiểu danh sách - thực sự cũng tránh việc tạo bất kỳ danh sách nào. Hiệu quả, trực tiếp, dễ đọc ... Pythonic!

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 4:00Mar 16, 2011 at 4:00

Dcrostadcrostadcrosta

25.4K8 Huy hiệu vàng70 Huy hiệu bạc83 Huy hiệu đồng8 gold badges70 silver badges83 bronze badges

0

Một câu trả lời sẽ là ánh xạ các tài sản của bạn theo giá trị quan tâm bên trong biểu thức của trình tạo, sau đó áp dụng các bản dựng

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
9 và
seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
0.

myMax = max(d['price'] for d in myList)
myMin = min(d['price'] for d in myList)

Đã trả lời ngày 16 tháng 3 năm 2011 lúc 4:00Mar 16, 2011 at 4:00

Dcrostadcrostarlibby

25.4K8 Huy hiệu vàng70 Huy hiệu bạc83 Huy hiệu đồng19 silver badges25 bronze badges

2

Một câu trả lời sẽ là ánh xạ các tài sản của bạn theo giá trị quan tâm bên trong biểu thức của trình tạo, sau đó áp dụng các bản dựng

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
9 và
seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
0.

from operator import itemgetter

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]  
max(map(itemgetter('price'), lst))

rlibbyrlibbySep 30, 2018 at 6:23

carton.swingcarton.swingcarton.swing

5,83119 Huy hiệu bạc25 Huy hiệu Đồng14 silver badges12 bronze badges

0

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để lấy khóa từ điển có giá trị tối đa trong một từ điển nhất định, bao gồm nếu nhiều khóa có cùng giá trị. Bạn cũng sẽ học cách chỉ cần lấy giá trị tối đa của tất cả các khóa trong từ điển. Bạn sẽ học cách thực hiện việc này bằng thư viện

seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
1, hàm
lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
7 và với sự hiểu biết từ điển. Bạn cũng sẽ học được những lợi ích và nhược điểm của từng phương pháp này.

Bắt đầu nào!

Câu trả lời nhanh: Sử dụng hàm tối đa () để lấy khóa từ điển với các giá trị tối đa

Hướng dẫn find max value in list of dictionaries python - tìm giá trị tối đa trong danh sách python từ điển

  • Từ điển Python là gì?
  • Làm thế nào để có được giá trị tối đa của từ điển Python
  • Cách nhận khóa từ điển với giá trị tối đa trong Python
  • Cách nhận nhiều khóa từ điển với các giá trị tối đa trong Python
  • Cách nhận giá trị tối đa từ danh sách các từ điển trong Python
  • Sự kết luận
  • Tài nguyên bổ sung

Từ điển Python là gì?

Từ điển trong Python là một trong những cấu trúc dữ liệu chính, tích hợp. Chúng là các bộ sưu tập các mặt hàng, mỗi cặp bao gồm một cặp

seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
3. Từ điển Python được tối ưu hóa để truy xuất các giá trị, khi đã biết khóa từ điển tương ứng.

Các giá trị có thể được lặp lại, tuy nhiên các khóa phải là duy nhất. Các giá trị cũng có thể thuộc bất kỳ loại dữ liệu nào (bao gồm các từ điển khác), trong khi các khóa phải là loại dữ liệu bất biến (như chuỗi, số hoặc bộ dữ liệu).

Hãy cùng xem cách từ điển nhìn vào Python. Chúng được tạo ra bằng cách sử dụng dấu ngoặc xoăn

seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
4 và các cặp
seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
3 được phân tách bằng dấu phẩy.

Hãy để tạo ra một từ điển gọi là

seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
6, trong đó, có chứa độ tuổi của những người khác nhau:

ages = {
    'Matt': 30,
    'Katie': 29,
    'Nik': 31,
    'Jack': 43,
    'Alison': 32,
    'Kevin': 38
}

Sau đó, chúng ta có thể truy cập một mục từ điển, bằng cách sử dụng ký hiệu khung vuông ____27 hoặc tốt hơn là sử dụng phương pháp từ điển

seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
8. Hãy để xem làm thế nào chúng ta có thể có được tuổi cho
seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
9:

>> print(ages.get('Nik'))
31

Bây giờ, chúng tôi đã đề cập đến một số điều cơ bản của từ điển Python, hãy để Lôi xem cách chúng ta có thể tìm thấy giá trị tối đa của từ điển Python.

Cách đơn giản nhất để có được giá trị tối đa của từ điển Python là sử dụng hàm

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
7. Chức năng cho phép chúng tôi có được giá trị tối đa của bất kỳ điều gì có thể.

Hãy cùng xem cách thức hoạt động của nó với một danh sách, trước khi đi vào một ví dụ phức tạp hơn với từ điển Python:

some_list = [30, 29, 31, 43, 32, 38]
max_value = max(some_list)
print(max_value)

# Returns: 43

Những gì chúng ta có thể thấy ở đây, là chúng tôi đã vượt qua trong một

import sys

lo,hi = sys.maxint,-sys.maxint-1
for x in (item['the_key'] for item in dict_list):
    lo,hi = min(x,lo),max(x,hi)
1 và có thể trả về giá trị tối đa của điều đó.

Nhưng làm thế nào điều này hoạt động với từ điển?

Hãy để cho nó thử chỉ bằng cách truyền từ điển:

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
0

Đây là chính xác những gì chúng tôi mong đợi. Chúng tôi đã hy vọng sẽ trở lại

import sys

lo,hi = sys.maxint,-sys.maxint-1
for x in (item['the_key'] for item in dict_list):
    lo,hi = min(x,lo),max(x,hi)
2, hoặc ít nhất là một số!

Từ điển Python được tích hợp tích hợp với phương pháp

import sys

lo,hi = sys.maxint,-sys.maxint-1
for x in (item['the_key'] for item in dict_list):
    lo,hi = min(x,lo),max(x,hi)
3, trích xuất các giá trị của danh sách của chúng tôi. Nếu bạn có một con mắt sắc sảo, bạn sẽ nhận thấy rằng danh sách
import sys

lo,hi = sys.maxint,-sys.maxint-1
for x in (item['the_key'] for item in dict_list):
    lo,hi = min(x,lo),max(x,hi)
4 của chúng tôi chứa tất cả các giá trị của từ điển của chúng tôi. Chúng ta chỉ có thể chuyển trong phương thức
import sys

lo,hi = sys.maxint,-sys.maxint-1
for x in (item['the_key'] for item in dict_list):
    lo,hi = min(x,lo),max(x,hi)
3 của chúng ta vào hàm tối đa.

Hãy cùng xem!

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
1

Những gì chúng tôi đã thực hiện ở đây lần đầu tiên trích xuất tất cả các giá trị từ từ điển của chúng tôi, và sau đó chuyển điều đó có thể sử dụng được vào hàm

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
7 của chúng tôi.

Bây giờ, hãy để xem xét cách bạn có thể trả lại khóa tương ứng với giá trị tối đa trong Python!

Kiểm tra một số hướng dẫn Python khác trên DataGy.io, bao gồm hướng dẫn đầy đủ của chúng tôi để tạo kiểu gấu trúc và tổng quan toàn diện của chúng tôi về các bảng trục trong gấu trúc!

Cách nhận khóa từ điển với giá trị tối đa trong Python

Cách nhận nhiều khóa từ điển với các giá trị tối đa trong Python

Cách nhận giá trị tối đa từ danh sách các từ điển trong Python

Sự kết luận

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
2

Tài nguyên bổ sung

Cách nhận nhiều khóa từ điển với các giá trị tối đa trong Python

Cách nhận giá trị tối đa từ danh sách các từ điển trong Python

Sự kết luận

Tài nguyên bổ sung

Từ điển trong Python là một trong những cấu trúc dữ liệu chính, tích hợp. Chúng là các bộ sưu tập các mặt hàng, mỗi cặp bao gồm một cặp

seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
3. Từ điển Python được tối ưu hóa để truy xuất các giá trị, khi đã biết khóa từ điển tương ứng.

  1. Các giá trị có thể được lặp lại, tuy nhiên các khóa phải là duy nhất. Các giá trị cũng có thể thuộc bất kỳ loại dữ liệu nào (bao gồm các từ điển khác), trong khi các khóa phải là loại dữ liệu bất biến (như chuỗi, số hoặc bộ dữ liệu).
  2. Hãy cùng xem cách từ điển nhìn vào Python. Chúng được tạo ra bằng cách sử dụng dấu ngoặc xoăn
    seq = [x['the_key'] for x in dict_list]
    min(seq)
    max(seq)
    
    4 và các cặp
    seq = [x['the_key'] for x in dict_list]
    min(seq)
    max(seq)
    
    3 được phân tách bằng dấu phẩy.

Hãy để tạo ra một từ điển gọi là

seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
6, trong đó, có chứa độ tuổi của những người khác nhau:

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
3

Sau đó, chúng ta có thể truy cập một mục từ điển, bằng cách sử dụng ký hiệu khung vuông ____27 hoặc tốt hơn là sử dụng phương pháp từ điển

seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
8. Hãy để xem làm thế nào chúng ta có thể có được tuổi cho
seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
9:

Bây giờ, chúng tôi đã đề cập đến một số điều cơ bản của từ điển Python, hãy để Lôi xem cách chúng ta có thể tìm thấy giá trị tối đa của từ điển Python. Check out my in-depth tutorial on Python list comprehensions to learn all you need to know! Or, check out my video on the topic below:

Cách nhận giá trị tối đa từ danh sách các từ điển trong Python

Bạn có thể thấy mình làm việc thường xuyên, với danh sách từ điển. Trong những trường hợp này, có thể hữu ích khi biết làm thế nào để có được giá trị tối đa, trên tất cả các từ điển trong danh sách từ điển đó.

Làm điều này là khá dễ dàng! Trước tiên, chúng tôi sẽ làm điều này với một phương thức vòng lặp, theo sau là sự hiểu biết danh sách. Trước tiên, hãy cùng xem phương pháp For-Loop:

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
4

Chúng tôi cũng có thể viết lại điều này như một sự hiểu biết danh sách:

lst = [{'price': 99, 'barcode': '2342355'}, {'price': 88, 'barcode': '2345566'}]

maxPricedItem = max(lst, key=lambda x:x['price'])
minPricedItem = min(lst, key=lambda x:x['price'])
5

Sự kết luận

Trong bài đăng này, bạn đã học được cách lấy giá trị tối đa từ một từ điển trong Python. Ngoài ra, bạn đã học được cách lấy khóa hoặc khóa tương ứng có giá trị tối đa trong từ điển. Cuối cùng, bạn đã học được cách lấy giá trị tối đa từ danh sách các từ điển Python.

Để tìm hiểu thêm về phương pháp Python

seq = [x['the_key'] for x in dict_list]
min(seq)
max(seq)
8, hãy xem tài liệu chính thức ở đây.

Tài nguyên bổ sung

Để tìm hiểu thêm về các chủ đề liên quan, hãy xem các hướng dẫn sau:

  • Từ điển Python: Tổng quan đầy đủ
  • Python: Thêm khóa: cặp giá trị vào từ điển
  • Python DefaultDict: Tổng quan và ví dụ
  • Python: Sắp xếp từ điển theo các giá trị

Làm thế nào để bạn tìm thấy giá trị tối đa của một danh sách trong từ điển?

Cách đơn giản nhất để có được giá trị tối đa của từ điển Python là sử dụng hàm tối đa ().Chức năng cho phép chúng tôi có được giá trị tối đa của bất kỳ điều gì có thể.Những gì chúng ta có thể thấy ở đây, là chúng ta đã vượt qua trong một danh sách, một danh sách và có thể trả lại giá trị tối đa của điều đó.use the max() function. The function allows us to get the maximum value of any iterable. What we can see here, is that we've passed in an iterable, a list , and were able to return max value of that iterable.

Làm thế nào để bạn tìm thấy giá trị tối đa trong một danh sách trong Python?

Hàm Max () in phần tử lớn nhất trong danh sách. prints the largest element in the list.

Bạn có thể sử dụng Max trên danh sách Python không?

Hàm Python Max () trả về giá trị lớn nhất trong một số lượng khác nhau, chẳng hạn như một danh sách.Nếu một danh sách chứa các chuỗi, mục cuối cùng theo thứ tự abc được trả về bởi Max ().. If a list contains strings, the last item alphabetically is returned by max().

Việc sử dụng hàm tối đa trong từ điển là gì?

Phương thức tối đa () trả về phần tử tối đa của từ điển.returns the maximum element of dictionary .