从列表中生成一个不包含一个特定索引的随机索引

罗伯特·约瑟夫

我有一个整数列表: l = [1,2,3,4]

对于此列表中的每个元素,我需要随机选择一个不同的元素并对其执行一些操作:

for i in range(len(l)):
   idx = # a random index which is NOT equal to i
   # do something with the element at idx

我对 Python 还是很陌生,无法确定是否有办法做到这一点,而无需求助于生成随机索引的循环,并且仅在随机数不等于i. 任何建议将不胜感激。

tobias_k

怎么样:生成一个介于1 0N - 1N在这种情况下是列表的长度)之间的随机数,然后在该数字等于或大于 时加一i

for i in range(len(l)):
    idx = random.randrange(len(l) - 1)
    idx = idx + 1 if idx >= i else idx
    # do stuff with idx

这样,上面滚动的所有数字都会i“向上移动”:

       0      i          N
before *****************
after  ******* **********

或者,在一个单一的线,你可以生成之间的数字1 i + 1N + i,并采取数模N,有效列表结束后周围包裹它:

    idx = random.randrange(i + 1, len(l) + i) % len(l)

       0      i          N
before         *****************
after  ******* **********

1)这里的意思是包括下限和不包括上限,使用randrange

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Prolog:根据DCG从列表中生成一个术语

连接除一个索引外的列表列表

连接数据框-一个包含多索引列,另一个不包含

每次生成随机数,不包含最后一个数字

如何从整数列表中生成一个整数?

从相同索引的列表元素中选择随机整数并生成一个列表

根据另一个列表的索引生成一个列表

根据元组列表创建一个列表(值,索引)

随机选择一个包含特定元素的列表

使用kdb生成一个唯一的随机数列表,其中该数字不应与列表中数字的索引相同

如何在包含相同元素的另一个列表中找到一个列表的元素索引?

生成列表,但仅显示第一个索引

Python,第一个列表索引-上一个列表索引,然后打印

将一个列表的内容插入到特定索引处的另一个列表中

在PHP中生成一个随机数不接近X先前元素的数组

NumPy构造一个不包含rowi,columnj保留row,column索引的新矩阵

Scala创建一个列表,其中包含特定索引下的一些数据,其余所有索引下为0

在SQL中生成一个列表

如何通过索引随机选择一个Javascript对象?

Python 设置一个列表但保留原始列表的索引

如果它们在另一个特定索引中相似,则添加列表的相同索引

从另一个列表返回特定索引列表的列表值

随机选取数据而不在索引中重复并从中创建一个新列表

在python中查找包含另一个特定子列表的二维列表的索引

如何从列表中生成随机数,而不重复最后一个?

在给定列表的索引中随机选择一个整数

创建一个循环以在大列表中生成列名

从另一个列表索引列表元素

我如何从一个特定索引读取特定索引到另一个索引?