随机生成n个1-1000的整数,n由用户输入,去除相同数字保留一个,从大到小排序

python环境下要代码,随机生成n个1-1000的整数,n由用户输入,去除相同数字保留一个,从大到小排序

import random
n = int(input())
res = random.sample(range(1001),n)
print(sorted(res, reverse=True))

set集合可以保证数据不重复

import random

# 获取用户输入并将值转为int类型
n = int(input("请输入随机数数量:"))

# 定义一个空的set集合
setlist = set()

# 循环生成随机数,并将随机数放入set集合中
for i in range(n):
    r = random.randint(1,1000)
    setlist.add(r)

# 将set集合转为list集合并
randomlist = list(setlist)
# 从大到小排序
randomlist.sort(reverse=True)
print(randomlist)
import random

n = int(input())
ls = [random.randint(1,1000) for _ in range(n)]
ls = list(set(ls))
ls.sort(reverse = True)
print(ls)

你所谓n个是保证输出有n个还是?随机获得n个,如果有重复就舍弃,则最终输出不足n个也不管? 后一种这样的实现参考 zhouwhui椆 或者 Hann Yang 两位的。
如果是需要输出n个不重复的结果,则用洗牌算法其实是比较好的,具体实现如下:

import random
n = int(input())
rt = [ x  for x  in  range(1,1001)]
for i in  range(1000): # 洗牌交换
    t=random.randint(0,1000)
    c=rt[i]
    rt[i]=rt[t]
    rt[t]=c

rt=rt[:n] # 取前n个元素
rt=sorted(rt,reverse = True)
print(rt)
import random
 
n  =  int(input())
ls = [random.randint(1,1000) for  i  in range(n)]
ls = list(set(ls))
ls=sorted(ls,reverse = True)
print(ls)
import random
n=int(input())
print(sorted(set([random.randint(1,1001) for _ in range(n)]), reverse=True))

import random
import numpy as np
n = int(input())
num = [random.randint(1, 1000) for i in range(n)]
number, counts = np.unique(num, return_counts = True)
number = list(number)
number.sort()
print(number)

import random
a = int(input())

ls = []
for i in range(a):
    ls.append(random.randint(1,1000))

ls = set(ls)
ls = sorted(ls,reverse = True)
print(ls)