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

Tích lớn nhất của hai phần tử liên tiếp trong Python

Python có thư viện mạnh để thao tác dữ liệu. Cần tìm tích lớn nhất của 2 số liên tiếp trong chuỗi số lớn. Bài viết trình bày cách làm.

Sử dụng zip và max

Chuyển chuỗi thành list. Tạo cặp từ phần tử liên tiếp nhờ slicing. Nhân cặp bằng * và lấy max từ kết quả nhân của các cặp.

Ví dụ

Astring = '5238521'  # Chuỗi cho trước
print("Given String : ", Astring)
# Chuyển thành list
Astring = list(Astring)
print("String converted to list:\n", Astring)
# Sử dụng max()
res = max(int(a) * int(b) for a, b in zip(Astring, Astring[1:]))  # Kết quả
print("The maximum consecutive product is : ", res)

Kết quả

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

Given String : 5238521 String converted to list: ['5', '2', '3', '8', '5', '2', '1'] The maximum consecutive product is : 40

Sử dụng map và max

Tương tự cách trên. Dùng map() tạo cặp số nguyên liên tiếp. Dùng mul() từ module operator nhân cặp số. Cuối cùng max() lấy giá trị lớn nhất.

Ví dụ

from operator import mul
Astring = '5238521'  # Chuỗi cho trước
print("Given String : ", Astring)
# Chuyển thành list
Astring = list(Astring)
print("String converted to list:\n", Astring)
# Sử dụng max()
res = max(map(mul, map(int, Astring), map(int, Astring[1:])))  # Kết quả
print("The maximum consecutive product is : ", res)

Kết quả

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

Given String : 5238521 String converted to list: ['5', '2', '3', '8', '5', '2', '1'] The maximum consecutive product is : 40