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

Sản phẩm tối đa phần tử liên tiếp trong Python

Python có các thư viện tuyệt vời để thao tác dữ liệu. Chúng ta có thể bắt gặp nhu cầu tìm tích lớn nhất của hai số liên tiếp là một phần của chuỗi lớn. Trong bài viết này, chúng ta sẽ xem các cách để đạt được điều đó.

Với zip và max

Chúng tôi chuyển đổi chuỗi thành một danh sách. Sau đó, tạo các cặp từ các phần tử liên tiếp với sự trợ giúp của việc cắt. Áp dụng *, chúng tôi nhân cặp và sau đó lấy giá trị lớn nhất từ ​​kết quả của phép nhân từ mỗi cặp.

Ví dụ

Astring = '5238521'
# Given string
print("Given String : ",Astring)
# Convert to list
Astring = list(Astring)
print("String converted to list:\n",Astring)
# Using max()
res = max(int(a) * int(b) for a, b in zip(Astring, Astring[1:]))
# Result
print("The maximum consecutive product is : " ,res)

Đầu ra

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

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

Với bản đồ và tối đa

Chúng tôi thực hiện một cách tiếp cận tương tự như trên. Nhưng chúng tôi sử dụng hàm bản đồ để tiếp tục tạo ra các cặp số nguyên liên tiếp. Sau đó, sử dụng hàm mul từ mô-đun toán tử để nhân các số trong cặp này. Cuối cùng, hãy áp dụng hàm max để nhận giá trị lớn nhất của kết quả.

Ví dụ

from operator import mul
Astring = '5238521'
# Given string
print("Given String : ",Astring)
# Convert to list
Astring = list(Astring)
print("String converted to list:\n",Astring)
# Using max()
res = max(map(mul, map(int, Astring), map(int, Astring[1:])))
# Result
print("The maximum consecutive product is : " ,res)

Đầu ra

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

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