Trong bài này, chúng ta sẽ học cách tìm số lớn nhất có thể từ danh sách các số đã cho. Chúng ta sẽ thấy hai cách khác nhau để tìm ra cách giải quyết vấn đề. Làm theo các bước dưới đây để giải quyết vấn đề.
- Nhập mô-đun itertools cho phương thức hoán vị.
- Khởi tạo danh sách với các số và một danh sách trống.
- Lặp lại các hoán vị của danh sách.
- Kết hợp tất cả các kết hợp và thêm kết quả vào danh sách trống.
- Tìm số tối đa từ kết quả với phương thức và khóa max là int.
- Chuyển đổi chuỗi thành số nguyên và in ra.
Ví dụ
Hãy xem mã.
# importing the module import itertools # initializing the list numbers = [45, 35, 138, 43, 67] # result result = [] # permutations for permutation in itertools.permutations(str(number) for number in numbers): result.append(''.join(permutation)) # finding max maximum = max(result, key=int) # printing the max print(int(maximum))
Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.
Đầu ra
67454335138
Hãy xem một cách khác để giải quyết vấn đề. Chúng tôi sẽ sắp xếp chức năng để giải quyết vấn đề. Làm theo các bước dưới đây để viết mã.
- Chuyển danh sách đến chức năng đã sắp xếp.
- Viết một hàm có tên get_key chấp nhận hai đối số.
- Trả về -1 nếu str (đầu tiên) + str (thứ hai)> str (thứ hai) + str (đầu tiên) khác 1.
- Kết hợp danh sách các phần tử bằng phương pháp nối.
- In kết quả bằng cách chuyển đổi thành số nguyên.
Vì chúng tôi đang sử dụng một hàm làm khóa, chúng tôi phải chuyển đổi nó thành khóa bằng cách sử dụng phương thức cmp_to_key từ functools. Hãy xem mã.
Ví dụ
from functools import cmp_to_key # initializing the list numbers = [45, 35, 138, 43, 67] def get_key(first, second): if str(first) + str(second) > str(second) + str(first): return -1 return 1 # getting the result result = sorted(numbers, key=cmp_to_key(get_key)) # joining the result result = "".join(str(integer) for integer in result) # printing the result print(int(result))
Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.
Đầu ra
67454335138
Kết luận
Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.