Как назначить 2 переменные с одинаковыми параметрами в 1 строку - PullRequest
0 голосов
/ 28 марта 2019

Так же, как учебное упражнение, я хотел узнать, есть ли способ в Python 3.x в основном сделать:

a = random.sample(range(30), random.randrange(1,20))
b = random.sample(range(30), random.randrange(1,20))

как:

a, b = random.sample(range(30), random.randrange(1,20))

это не работает,об этом я знаю.Я также не знаю, возможно ли это сделать без письменного уведомления.

a, b = random.sample(range(30), random.randrange(1,20)), random.sample(range(30), random.randrange(1,20))

Спасибо за заранее полученные ответы.

Ответы [ 3 ]

6 голосов
/ 28 марта 2019

Я думаю, что лучшим вариантом может быть понимание списка:

a, b = [random.sample(range(30), random.randrange(20)) for _ in range(2)]

Кроме того, вы можете использовать выражение генератора:

a, b = (random.sample(range(30), random.randrange(20)) for _ in range(2))

Но, поскольку это распаковка, я не уверен, что это будет быстрее.

1 голос
/ 28 марта 2019

Один метод

a,b=[random.sample(range(30), random.randrange(20)) for _ in [0,1]]

([0,1] можно заменить на любую итерацию длины-две)

Если вы звоните random.sample(range(30), random.randrange(20)) много, вам следует дать ему имя:

 def random_length_sample():
       return random.sample(range(30), random.randrange(20))
 a = random_length_sample()
 b = random_length_sample()
0 голосов
/ 28 марта 2019

Почему бы просто:

a=random.sample(range(30),random.randrange(20))
b=a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...