Исключить значение из массива в Python - PullRequest
0 голосов
/ 02 октября 2019

У меня есть список значений, 4 из них выбраны случайным образом, и теперь я хочу исключить эти четыре случайных значения из основного списка. Как я могу сделать это в Python?

Main_list=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
random_list = random.sample(xrange(10), 4)
selected_values = [0,0,0,0];
for i in range(0, len(random_list)):
    selected_values[i] = Main_list[random_list[i]]
print 'selected values:', selected_values

результаты будут выглядеть так: выбранные значения: [2, 5, 9, 3]

Итак, как теперь исключить случайно выбранное значение изосновной список?

Ответы [ 3 ]

0 голосов
/ 02 октября 2019

Вам лучше использовать другой подход. Составьте список, перетасуйте список, чтобы сделать его случайным, затем pop() значения из списка, автоматически удаляя их.

from random import shuffle

main_list = range(1,11) # 1..10
shuffle( main_list )

four_values = [main_list.pop() for i in range(4)]

print four_values
0 голосов
/ 02 октября 2019

попробуйте это работает для меня

import random
Main_list=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

rand_items = [Main_list[random.randrange(len(Main_list))]
              for item in range(4)]
print("selected values from list",rand_items)

def Remove(duplicate): 
    final_list = [] 
    for num in duplicate: 
        if num not in final_list: 
            final_list.append(num) 
    return final_list 


for i in Remove(rand_items):
    Main_list.remove(i)
print("after removing items from list",Main_list)  

вывод моего кода:

выбранные значения из списка [4, 3, 9, 2]

послеудаление элементов из списка [1, 5, 6, 7, 8, 10]

0 голосов
/ 02 октября 2019

Проблема кажется проще, чем вы пытаетесь ее решить:

from random import sample

main_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("Main list:", main_list)

selected_values = sample(main_list, 4)
print("Selected values:", selected_values)

for selected_value in selected_values:
    main_list.remove(selected_value)

print("Main list:", main_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...