python3.6编写程序,生成一个包含20个随机整数的列表,要求所有元素不相同,并且每个元素的值介于1~100之间。

您所在的位置:网站首页 python列表降序排序奇数 python3.6编写程序,生成一个包含20个随机整数的列表,要求所有元素不相同,并且每个元素的值介于1~100之间。

python3.6编写程序,生成一个包含20个随机整数的列表,要求所有元素不相同,并且每个元素的值介于1~100之间。

2024-06-07 11:28| 来源: 网络整理| 查看: 265

python3.6题目要求:

编写程序,生成一个包含20个随机整数的列表,要求所有元素不相同,并且每个元素的值介于1~100之间。

#!/usr/bin/python3 # -*- coding: utf-8 -*- import random list_1 = [] #生成20位随机整数列表 for i in range(20): list_1.append(random.randint(0,100)) print(list_1) #统计新生成的整数在列表中的数量 if list_1.count(list_1[i]) > 1: #判断生成的是否为最后一个元素 if i < (20-1): print('移除了一个重复元素:',list_1[i]) #移除重复整数元素 list_1.pop(i) #移除后补加一个随机整数元素 list_1.append(random.randint(0,100)) #移除最后一个重复元素 else: #反复确认移除后生成的元素不再重复 while True: if list_1.count(list_1[i]) > 1: print('移除了最后一个重复元素:',list_1[i]) list_1.pop(i) list_1.append(random.randint(0,100)) else: print(list_1) break

运行代码结果如下:

其实在写这个题目的时候遇到了一点小问题,在这说一下,方便大家参考以及自己以后回来查看。

起初在用 pop(obj) 方法的时候,将obj可变参数写成 list_1[i] ,代码如下:

list_1.pop(list_1[i])

但运行代码后,一旦出现重复元素,就会报错,报错结果如下:

报错结果显示:“索引超出范围”,不解之时就用 help(list) 函数查了一下,查询结果显示:

pop(...) | L.pop([index]) -> item -- remove and return item at index (default last). | Raises IndexError if list is empty or index is out of range.

这才发现pop()方法的可变参数是[index],所以赶紧将可变参数改了一下:

list_1.pop(i)

结果可以正常运行了。

*另外,根据查询的help(list)显示:

pop()方法默认的是移除列表中最后一个元素,并返回该元素的值;该方法报错的一般原因为:列表为空或者索引超出范围。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3