Trong bài viết này, chúng ta sẽ thảo luận về cách tìm giá trị lớn nhất trong từ điển và cả các khóa có giá trị lớn nhất
Tìm khóa có giá trị lớn nhất trong Từ điển
Giả sử chúng ta có một từ điển chuỗi và int i. e
# Create a dictionary of string and int sampleDict = { 'Ritika': 5, 'Sam': 27, 'John' : 10 , 'Sachin' : 14, 'Mark' : 19 }
Bây giờ, giả sử chúng ta muốn tìm giá trị lớn nhất trong từ điển và cả khóa được liên kết với nó
Để làm được điều đó, chúng ta sẽ sử dụng hàm max[] i. e
# Find Key with Max Value itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]] print['Max value in Dict: ', itemMaxValue[1]] print['Key With Max value in Dict: ', itemMaxValue[0]]
Đầu ra.
______2
Nó hoạt động như thế nào?
Để biết nó hoạt động như thế nào, chúng ta cần giải thích một chút về hàm max[] i. e
max[iterable, *[, key, default]]
Đối số.
- lặp đi lặp lại. Một đối tượng Iterable
- Chìa khóa. Một hàm sẽ được áp dụng cho từng mục trong iterable và nó trả về một giá trị dựa trên đối số đã truyền
trả lại
- Nó trả về mục có giá trị tối đa trong Iterable. Nếu chức năng khóa không được cung cấp thì nó sẽ so sánh trực tiếp các mục trong Iterable để tìm ra giá trị tối đa. Nếu chức năng chính được cung cấp thì thay vì so sánh trực tiếp các mục, nó sẽ gọi chức năng chính trên mục và sau đó so sánh nó với các mục khác
Bây giờ trong ví dụ trên để tìm khóa có giá trị tối đa trong từ điển. Chúng tôi đã chuyển trả về Iterable bằng dict. items[], về cơ bản là một Iterable của key/value tuples. Bây giờ hàm max[] không thể so sánh trực tiếp các bộ dữ liệu này. Vì vậy, chúng tôi cũng đã thông qua một chức năng quan trọng. e
key=lambda x : x[1]
Hàm chính này chấp nhận một bộ làm đối số và trả về giá trị thứ 2 trong bộ i. e. mục tại chỉ số 1. Vì vậy, về cơ bản khi một bộ khóa, giá trị được truyền cho hàm này, nó sẽ trả về trường giá trị từ bộ đó.
Vì vậy, trong đoạn mã sau,
max[sampleDict.items[], key=lambda x : x[1]]
sampleDict. items[] trả về một Iterable và hàm max[] gọi hàm chính trên mỗi mục của Iterable này trước khi so sánh nó với các mục khác trong iterable. Vì vậy, về cơ bản, hàm max[] sẽ so sánh các mục như,
key[item1] < key[item2]
Nó trả về mục [bộ khóa/giá trị] có giá trị lớn nhất trong từ điển. Từ đó, chúng tôi đã tìm nạp các trường khóa và giá trị.
Nếu có nhiều khóa trong từ điển có giá trị lớn nhất thì giải pháp này sẽ không hoạt động, vì hàm max[] luôn trả về lần xuất hiện đầu tiên của giá trị lớn nhất. Vì vậy, nếu chúng ta muốn tìm tất cả các khóa có giá trị lớn nhất thì sao?
Để chuyển đổi các khóa Từ điển Python thành Danh sách, bạn có thể sử dụng dict. keys[] phương thức trả về một đối tượng dict_keys. Đối tượng này có thể được lặp lại và nếu bạn chuyển nó tới hàm tạo list[], nó sẽ trả về một đối tượng danh sách với các khóa từ điển làm phần tử
Một đoạn mã đơn giản để chuyển đổi các khóa từ điển thành danh sách là
keysList = list[myDict.keys[]]
ví dụ 1. Các phím từ điển để liệt kê bằng cách sử dụng dict. phím[]
Trong chương trình sau, chúng ta khởi tạo một từ điển với ba phím. cặp giá trị. Chúng tôi sẽ sử dụng dict. keys[] để lấy đối tượng dict_keys. chúng tôi vượt qua dict. keys[] làm đối số cho hàm tạo list[]. list[] trả về danh sách các khóa
Chương trình Python
myDict = {'a': 'apple', 'b': 'banana', 'c': 'cherry'}
keysList = list[myDict.keys[]]
print[keysList]
Chạyđầu ra
['a', 'b', 'c']
ví dụ 2. Khóa từ điển để liệt kê bằng cách sử dụng hiểu danh sách
Chúng tôi cũng có thể sử dụng Hiểu danh sách để lấy các khóa của từ điển dưới dạng các thành phần của danh sách
Chương trình Python
# Find Key with Max Value itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]] print['Max value in Dict: ', itemMaxValue[1]] print['Key With Max value in Dict: ', itemMaxValue[0]]0Chạy
đầu ra
['a', 'b', 'c']
ví dụ 3. Các khóa từ điển để liệt kê bằng vòng lặp For
Nếu bạn không thoải mái với việc hiểu Danh sách, hãy để chúng tôi sử dụng Vòng lặp. Khi bạn lặp trên từ điển, bạn sẽ nhận được khóa tiếp theo trong mỗi lần lặp. Xác định một danh sách trống keysList để lưu trữ các khóa và nối thêm khóa trong mỗi lần lặp trong vòng lặp for
Bài viết này mô tả cách lấy giá trị từ một từ điển [đối tượng loại ______18] bằng khóa trong Python
- Nhận giá trị từ từ điển với
# Find Key with Max Value itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]] print['Max value in Dict: ', itemMaxValue[1]] print['Key With Max value in Dict: ', itemMaxValue[0]]
9 [Max value in Dict: 27 Key With Max value in Dict: Sam
0 cho các khóa không tồn tại] - Sử dụng
Max value in Dict: 27 Key With Max value in Dict: Sam
1 để lấy giá trị mặc định cho các khóa không tồn tại
Nếu bạn muốn trích xuất các khóa theo giá trị, hãy xem bài viết sau
- Nhận khóa từ giá trị trong từ điển bằng Python
Liên kết được tài trợ
Nhận giá trị từ từ điển với # Find Key with Max Value
itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]]
print['Max value in Dict: ', itemMaxValue[1]]
print['Key With Max value in Dict: ', itemMaxValue[0]]
9 [Max value in Dict: 27
Key With Max value in Dict: Sam
0 cho các khóa không tồn tại]
Trong Python, bạn có thể lấy giá trị từ từ điển bằng cách chỉ định khóa như
# Find Key with Max Value itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]] print['Max value in Dict: ', itemMaxValue[1]] print['Key With Max value in Dict: ', itemMaxValue[0]]9
# Find Key with Max Value itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]] print['Max value in Dict: ', itemMaxValue[1]] print['Key With Max value in Dict: ', itemMaxValue[0]]2
nguồn.
Trong trường hợp này,
Max value in Dict: 27 Key With Max value in Dict: Sam0 được nâng lên nếu khóa không tồn tại
# Find Key with Max Value itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]] print['Max value in Dict: ', itemMaxValue[1]] print['Key With Max value in Dict: ', itemMaxValue[0]]3
nguồn.
Lưu ý rằng không có vấn đề gì khi chỉ định khóa không tồn tại nếu bạn muốn thêm phần tử mới
# Find Key with Max Value itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]] print['Max value in Dict: ', itemMaxValue[1]] print['Key With Max value in Dict: ', itemMaxValue[0]]4
nguồn.
Để biết thêm thông tin về cách thêm các mục vào từ điển, hãy xem bài viết sau
- Hợp nhất nhiều từ điển và thêm các mục vào từ điển trong Python
Sử dụng
# Find Key with Max Value itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]] print['Max value in Dict: ', itemMaxValue[1]] print['Key With Max value in Dict: ', itemMaxValue[0]]34 để kiểm tra xem khóa có tồn tại trong từ điển không
- Kiểm tra xem khóa/giá trị có tồn tại trong từ điển bằng Python không
Sử dụng Max value in Dict: 27
Key With Max value in Dict: Sam
1 để lấy giá trị mặc định cho các khóa không tồn tại
Bạn có thể sử dụng phương pháp
# Find Key with Max Value itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]] print['Max value in Dict: ', itemMaxValue[1]] print['Key With Max value in Dict: ', itemMaxValue[0]]36 của từ điển [
# Find Key with Max Value itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]] print['Max value in Dict: ', itemMaxValue[1]] print['Key With Max value in Dict: ', itemMaxValue[0]]8] để lấy bất kỳ giá trị mặc định nào mà không gặp lỗi nếu khóa không tồn tại
Chỉ định khóa làm đối số đầu tiên. Giá trị tương ứng được trả về nếu khóa tồn tại và
# Find Key with Max Value itemMaxValue = max[sampleDict.items[], key=lambda x : x[1]] print['Max value in Dict: ', itemMaxValue[1]] print['Key With Max value in Dict: ', itemMaxValue[0]]38 được trả về nếu khóa không tồn tại