python:向列表中添加10个随机整数,找出其中第2大的元素

方法一:

思路:用两个变量first和scend分别存储列表中最大的数和第二大的数(初始值默认为列表第一个数和第二数)。利用for循环遍历整个列表(除开前两个元素,因为已经被first和scend取走了),从第三个元素开始取,先后和scend和first比较,通过判断大小不断更新first的值和scend的值:

        若列表中取出的数比first和scend都大,则将first赋值给scend,将该元素赋值个first;

        若列表中取出的数比scend大,比first小,则将该元素赋值给scend;

        否则first和scend不变。

最后输出scend即可。

代码如下:

#导入随机生成模块
import random
#建立一个空列表,用于存储元素
nums = []
#for循环随机添加0~1000之间的10个整数
for _ in range(10):
    nums.append(random.randrange(1000))
#用于获取列表中最大的数和第二大的数
first = nums[0]
scend = nums[1]
if first < scend:
    t = first
    first = scend
    scend = t
print('原数组:',nums)
for i in range(len(nums)):
    if i == len(nums) - 1:
        break
    if nums[i + 1] > scend:
        if nums[i + 1] > first:
            scend = first
            first = nums[i + 1]
        else:
            scend = nums[i + 1]
print('最大的两个数',first, scend)

结果如图(因为是随机生成的数组,所以每次元素都不一样):

 

方法二:

 当然也可以使用list的内置函数sort()排序:

#导入随机生成模块
import random
#建立一个空列表,用于存储元素
nums = []
#for循环随机添加0~1000之间的10个整数
for _ in range(10):
    nums.append(random.randrange(1000))

#使用sort对列表进行排序,True代表降序, False代表升序
nums.sort(reverse=True)
print('使用内置函数排序',nums)
print('排序后输出第二个元素',nums[1])

 结果如下:

是不是比前者方便很多 

方法三

思路:使用max方法找到最大数,并且删除,然后再次使用max找最大数,此时得到的数为原列表中第二大的数

# 导入随机生成模块
import random

# 建立一个空列表,用于存储元素
nums = []
# for循环随机添加0~1000之间的10个整数
for _ in range(10):
    nums.append(random.randrange(1000))
print(f'随机生成的列表元素:{nums}')

nums.remove(max(nums))
print(f'第二大的元素:{max(nums)}')

结果如下:

 如果大家还有其他的方法,欢迎一起交流学习哦

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值