我有一個由1或0組成的整數列表y
。例如,在列表中隨機選擇值1並獲得索引
y = [1,0,0,0,0,1,0]
我想在列表中y
它等於1隨機選擇兩個值,並獲得在列表中這些項目的指標。例如,
index = [0,5]
我有一個由1或0組成的整數列表y
。例如,在列表中隨機選擇值1並獲得索引
y = [1,0,0,0,0,1,0]
我想在列表中y
它等於1隨機選擇兩個值,並獲得在列表中這些項目的指標。例如,
index = [0,5]
選項1 - 推薦@StefanPochmann,@rayryeng和@Clayton Wahlstrom。
index = [i for (i, j) in enumerate(y) if j]
print(random.sample(index, 2))
選項2 - 我原來的可怕實現...
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))
學習'枚舉'的時間。 –
你可以用一個理解來代替循環:'index = [i for(i,j)in enumerate(y)if j == 1]'。 – rayryeng
@rayryeng另一個改進,只要列舉的條件'如果j' –
y
即等於1,只保留指數的新名單。 ones = [i for i, elem in enumerate(y) if elem == 1]
sample_ones = random.sample(ones, k=2)
sample_ones
是包含指數在隨機選擇的元素的列表y
等於1.
酷故事兄弟。 –
嗨@scutnex,請使用[mcve] –