Computer >> Máy Tính >  >> Lập trình >> Python

Nhận phần tử đầu tiên có giá trị lớn nhất trong danh sách các bộ giá trị bằng Python

Chúng tôi có một danh sách các tuple. Chúng tôi bắt buộc phải tìm ra tuple đó là giá trị lớn nhất trong đó. Nhưng trong trường hợp có nhiều bộ giá trị giống nhau, chúng ta cần bộ giá trị đầu tiên có giá trị lớn nhất.

Với itemgetter và max

Với itemgetter (1), chúng ta lấy tất cả giá trị từ vị trí chỉ mục 1 và sau đó áp dụng hàm max để lấy item có giá trị lớn nhất. Nhưng trong trường hợp trả về nhiều kết quả, chúng tôi áp dụng chỉ số 0 để lấy bộ giá trị đầu tiên có phần tử tối đa trong đó.

Ví dụ

from operator import itemgetter
# initializing list
listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)]
# Given list
print("Given list : \n" ,listA)
# using max() and itemgetter()
res = max(listA, key=itemgetter(1))[0]
# printing result
print("Day with maximum score is : \n",res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list :
[('Mon', 3), ('Tue', 20), ('Wed', 9)]
Day with maximum score is :
Tue

Với max và lambda

Chúng ta sử dụng hàm lambda để lấy các phần tử ở vị trí chỉ mục 1 sau đó áp dụng hàm max. Sau đó, chúng tôi áp dụng vị trí chỉ số 0 để lấy điểm đầu tiên trong số nhiều trận đấu để có kết quả cuối cùng.

Ví dụ

# initializing list
listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)]
# Given list
print("Given list : \n" ,listA)
# using max() and lambda
res = max(listA, key = lambda i : i[1])[0]
# printing result
print("Day with maximum score is : \n",res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list :
[('Mon', 3), ('Tue', 20), ('Wed', 9)]
Day with maximum score is :
Tue

Có sắp xếp

Trong cách tiếp cận này, chúng tôi sử dụng hàm đã sắp xếp với điều kiện được đảo ngược bằng điều kiện đúng khi áp dụng hàm lambda.

Ví dụ

# initializing list
listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)]
# Given list
print("Given list : \n" ,listA)
# using sorted() and lambda
res = sorted(listA, key = lambda i: i[1], reverse = True)[0][0]
# printing result
print("Day with maximum score is : \n",res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list :
[('Mon', 3), ('Tue', 20), ('Wed', 9)]
Day with maximum score is :
Tue