【问题标题】:Exclude value from an array in python从python中的数组中排除值
【发布时间】:2019-10-02 05:02:42
【问题描述】:

我有一个值列表,随机选择了其中的 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]

那么现在如何从主列表中排除随机选择的值?

【问题讨论】:

  • 您的意思是将您的selected_values 排除在您的Main_list 之外?
  • Main_list = [val for val in Main_list if val not in selected_values]

标签: python list numpy random


【解决方案1】:

这个问题似乎比你想解决的简单:

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)

【讨论】:

  • remove() 删除第一个匹配元素,而不是被选中的元素(如果列表中存在相同元素)。
【解决方案2】:

您最好使用不同的方法。制作一个列表,打乱列表使其随机化,然后从列表中自动删除 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

【讨论】:

    【解决方案3】:

    试试这个对我有用

    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] 中删除项目后

    【讨论】:

    • 谢谢你们,你们所有的答案都很好。但是,我将为我选择最简单的一个。问候,
    猜你喜欢
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多