Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Lấy Phần Tử Đầu Tiên Có Giá Trị Lớn Nhất Trong List Tuple (Get First Element with Maximum Value in List of Tuples) trong Python


Ta có một danh sách tuple. Ta cần tìm tuple có giá trị lớn nhất trong nó. Nhưng nếu nhiều tuple có cùng giá trị lớn nhất, ta cần tuple đầu tiên có giá trị lớn nhất đó.

Với itemgetter và max

Với itemgetter(1) ta lấy tất cả giá trị từ vị trí index 1 rồi áp dụng hàm max để lấy item có giá trị max. Nhưng nếu nhiều kết quả trả về, ta áp dụng index 0 để lấy tuple đầu tiên có phần tử lớn nhất.

Ví dụ

from operator import itemgetter # khởi tạo list listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)] # Danh sách cho trước print("Given list : \n" ,listA) # sử dụng max() và itemgetter() res = max(listA, key=itemgetter(1))[0] # in kết quả print("Day with maximum score is : \n",res)

Đầu ra

Chạy mã trên cho kết quả sau:

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

Với max và lambda

Ta dùng hàm lambda để lấy phần tử tại vị trí index 1 rồi áp dụng max. Sau đó áp dụng index 0 để lấy phần tử đầu tiên trong các kết quả trùng khớp.

Ví dụ

# khởi tạo list listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)] # Danh sách cho trước print("Given list : \n" ,listA) # sử dụng max() và lambda res = max(listA, key=lambda i: i[1])[0] # in kết quả print("Day with maximum score is : \n",res)

Đầu ra

Chạy mã trên cho kết quả sau:

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

Với sorted

Trong cách này ta dùng hàm sorted với reverse=True khi áp dụng lambda.

Ví dụ

# khởi tạo list listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)] # Danh sách cho trước print("Given list : \n" ,listA) # sử dụng sorted() và lambda res = sorted(listA, key=lambda i: i[1], reverse=True)[0][0] # in kết quả print("Day with maximum score is : \n",res)

Đầu ra

Chạy mã trên cho kết quả sau:

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