思路:
1、乘积最大的三个数:
- 先求出列表中最大的三个数的乘积
products1
; - 再求出列表中最小的二个数与最大的数之乘积
products2
; 最后比较
products1
和products2
,返回得出较大乘积的三个数。2、乘积最小的三个数:
先求出列表中最小的三个数的乘积
products1
;- 再求出列表中最大的二个数与最小的数之乘积
products2
; - 最后比较
products1
和products2
, 返回得出较小乘积的三个数。
#获得列表中乘积最大的三个数
def get_max_products(nums):
#将列表排序
sorted_nums = sorted(nums)
#获得列表中最大的三个数
*items, max_third, max_second, max_first = sorted_nums
#获得列表中最小的二个数
min_first, min_second, *items = sorted_nums
#求出列表中最大的三个数的乘积
products1 = max_first * max_second * max_third
#求出列表中最小的二个数与最大的数之乘积
products2 = min_first * min_second * max_first
#比较`products1`和`products2`,返回得出较大乘积的三个数。
if products1 > products2:
print('The max products items are %s, %s, %s, products is %s'
%(max_first, max_second, max_third, products1))
else:
print('The max products items are %s, %s, %s, products is %s'
%(min_first, min_second, max_first, products2))
#获得列表中乘积最小的三个数
def get_min_products(nums):
#将列表排序
sorted_nums = sorted(nums)
#获得列表中最大的二个数
*items, max_second, max_first = sorted_nums
#获得列表中最小的三个数
min_first, min_second, min_third, *items = sorted_nums
#求出列表中最小的三个数的乘积
products1 = min_first * min_second * min_third
#求出列表中最大的二个数与最小的数之乘积
products2 = max_first * max_second * min_first
#比较`products1` 和`products2`, 返回得出较小乘积的三个数
if products1 < products2:
print('The min products items are %s, %s, %s, products is %s'
%(min_first, min_second, min_third, products1))
else:
print('The min products items are %s, %s, %s, products is %s'
%(min_first, max_first, max_second, products2))
#针对不同的列表进行方法调用来进行测试
nums1 = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]
get_max_products(nums1)
get_min_products(nums1)
nums2 = [1, 8, 2, 23, -7, -4, 18, -23, -42, -37, 2]
get_max_products(nums2)
get_min_products(nums2)
输出结果:
The max products items are 42, 37, 23, products is 35742
The min products items are -4, 42, 37, products is -6216
The max products items are -42, -37, 23, products is 35742
The min products items are -42, -37, -23, products is -35742