Python实现:选出列表中乘积最大的三个数和最小的三个数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cmzsteven/article/details/79401575

思路:

1、乘积最大的三个数:

  • 先求出列表中最大的三个数的乘积 products1
  • 再求出列表中最小的二个数与最大的数之乘积 products2
  • 最后比较products1products2,返回得出较大乘积的三个数。

    2、乘积最小的三个数:

  • 先求出列表中最小的三个数的乘积 products1

  • 再求出列表中最大的二个数与最小的数之乘积 products2
  • 最后比较products1products2, 返回得出较小乘积的三个数。
#获得列表中乘积最大的三个数
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

猜你喜欢

转载自blog.csdn.net/cmzsteven/article/details/79401575