Ошибка при попытке получить объединение, пересечение и разность в наборе

Как говорится в названии, я получаю ошибку в своем коде здесь:

#!/usr/bin/python3

import random

A = random.sample(set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 5)

B = random.sample(set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 5)


print(A | B)

print(A & B)

print(A - B)

Ошибка, которую я получаю, это TypeError: unsupported operand type(s) for |: 'list' and 'list'.то , что я также пыталсяrandom.sample(range(10), 5), что все еще не работает.

Есть что-то, что я делаю неправильно?

2 ответа

  1. Итак, как говорит error, функция:

    random.sample  
    

    возвращает список объект не установлен, попробуйте преобразовать их, как это :

    A = set(random.sample(range(1,10), 5))
    
  2. Попробовать это:

    import random
    
    A = set(random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 5))
    
    B = set(random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 5))
    
    
    print(A | B)
    
    print(A & B)
    
    print(A - B)
    

    Оно должен произвести следующий выход:

    {2, 3, 4, 5, 6, 7, 10}
    {2, 4, 6}
    {10, 5}