#python #random
#python #Случайный
Вопрос:
Итак, я хочу превратить этот код в одну строку. Я понятия не имею, как создать два случайных списка, а затем распечатать общие числа, которые находятся в двух списках, в пределах одной строки. Я новичок в том, чтобы помещать код в одну строку, и я понятия не имею, возможно ли это.
Вот код, который у меня есть:
import random
a, b = random.sample(range(1, 50), 30), random.sample(range(1, 50), 30)
print([x for x in a for y in b if x == y])
И вот моя попытка в этом:
import random
print([[a = random.sample(range(1, 50), 30)], [b = random.sample(range(1, 50), 30)], x for x in a for y in b if x == y])
Комментарии:
1. Проблема, безусловно, кажется решенной, пожалуйста, отметьте любой из правильных ответов как принятый.
Ответ №1:
Просто вставьте определения, поскольку нет необходимости в переменной:
import random
print([x for x in random.sample(range(1, 50), 30) for y in random.sample(range(1, 50), 30) if x == y])
Вы также можете заменить random
на __import__("random")
, а затем избавиться import random
от в первой строке, если вам нужна настоящая однострочная строка.
Комментарии:
1. Большое спасибо. Это так логично.
Ответ №2:
С помощью наборов:
>>> import random
>>> {*random.sample(range(1, 50), 30)}.intersection({*random.sample(range(1, 50), 30)})