在列表中随机选择值1并获取索引

时间:2017-10-21 21:06:26

标签: python list

我有一个由1或0组成的整数列表y。例如,

 y = [1,0,0,0,0,1,0]

我希望在列表y中随机选择两个值,它等于1,并获取列表中这些项的索引。例如,

index = [0,5]

2 个答案:

答案 0 :(得分:2)

选项1 - 建议@StefanPochmann@rayryeng@Clayton Wahlstrom

import random

y = [1,0,0,0,0,1,0]

i = 0
index =[]
for each in y:
    if each == 1:
        index.append(i)
    i = i + 1
print(random.sample(index, 2))

选项2 - 我最初的可怕实施......

{{1}}

答案 1 :(得分:0)

  1. 使用enumerate创建一个新列表,其中包含y中等于1的项目索引,仅保留索引。
    ones = [i for i, elem in enumerate(y) if elem == 1]
  2. 使用random.sample从这个新列表中随机选择项目,在您的情况下,使用k = 2个样本:
    sample_ones = random.sample(ones, k=2)
  3. sample_ones是一个列表,其中包含y中等于1的随机选定元素的索引。