Python 生成忽略选定值的随机数组

Python 生成忽略选定值的随机数组,python,arrays,random,Python,Arrays,Random,在Python中,我们可以通过执行以下操作创建0到10之间的随机数组: randarray = random.sample(range(0, 10), 10) 我的问题是,我想创建一个从0到10的数组,但在第一个位置,我想添加一个随机生成的数字,然后不重复地追加其余的数字 这意味着我首先要做: first_value = random.randint(0,10) 例如,如果first\u value是4,我想创建一个从0到10的随机数组(不重复),但忽略数字4。例如,[0,9,5,6,1,

在Python中,我们可以通过执行以下操作创建0到10之间的随机数组:

randarray = random.sample(range(0, 10), 10)
我的问题是,我想创建一个从0到10的数组,但在第一个位置,我想添加一个随机生成的数字,然后不重复地追加其余的数字

这意味着我首先要做:

first_value =  random.randint(0,10)
例如,如果
first\u value
是4,我想创建一个从0到10的随机数组(不重复),但忽略数字4。例如,
[0,9,5,6,1,8,7,3,2]
。这是我不知道怎么做的,所以任何帮助都将不胜感激

然后我只想将
第一个\u值
附加到
随机数组

randarray.insert(0, first value)
因此,期望的输出是:
[4,0,9,5,6,1,8,7,3,2]

方法是:

  • 你有清单吗
  • 你有第一个号码吗
  • 从列表中删除号码
  • 洗牌列表
  • 希望这有助于-

    first_value = random.randint(0, 10)
    randarray = [i for i in random.sample(range(0, 10), 10) if i != first_value]
    randarray.insert(0, first_value)
    
    听起来你真的在寻找一个列表: 对于更一般的方法,请使用: 如果确实要单独生成头部,请执行以下操作:
    重复第一个数字以外的其他数字可以吗?不,也必须不重复。所以,你想要一个数字1-10的无序列表吗?@folkol,他似乎还需要单独生成第一个数字,然后生成列表的其余部分。是吗?那会产生同样的结果,不是吗?(我的意思是,单独生成,或者让sample为您做这些。)不管怎样,我们都很好,因为他找到了他想要的:)祝您有愉快的一天!正如我在文章中指出的那样,分别创建随机数,然后将其附加到随机创建的列表中是很重要的。不管怎样,谢谢你的帮助和ok Borja。我很好奇为什么,能解释一下区别吗?这是为了为GRAP算法创建数组,并将它们与多启动算法的效率进行比较。对于这一点,并且由于该方法的实现,我必须说两次执行的第一个数字是哪个。
    >>> from random import shuffle
    >>> xs = range(0, 10)
    >>> shuffle(xs)
    >>> xs
    [2, 5, 4, 7, 1, 9, 3, 0, 6, 8]
    
    >>> from random import sample
    >>> xs = sample(range(0, 10), 10)
    
    >>> from random import randint, sample
    >>> x = randint(0, 10)
    >>> p = range(0, 10)
    >>> p.remove(x)
    >>> xs = [x] + sample(p, 9)