#python #loops #tuples
#python #циклы #Кортежи
Вопрос:
Dice_1 = [random.randint(1,7) for x in range(3)]
Dice_2 = [random.randint(1,7) for x in range(3)]
for a in Dice_1:
print(a)
for b in Dice_2:
print(b)
Я хочу, чтобы после генерации одного случайного целого числа из Dice_1
и Dice_2
оба образовывали кортеж, затем следующую пару и так далее, например (1,3)
, и затем (5,7)
.
Заранее спасибо
Ответ №1:
Вы можете использовать zip
Dice_1 = [random.randint(1,7) for x in range(3)]
Dice_2 = [random.randint(1,7) for x in range(3)]
for a,b in zip(Dice_1,Dice_2):
print((a,b))
Вывод:
(1, 4)
(5, 7)
(7, 6)
Ответ №2:
Либо используйте zip(), либо создайте кортежи для начала:
tups = [(random.randint(1,7), random.randint(1,7)) for _ in range(3)]
… кстати. это 7-сторонний штамп, довольно редкий вид.
Другим способом было бы использовать индекс и значение первого списка (через enumerate ) и индексировать во второй список:
import random
Dice_1 = [random.randint(1,7) for x in range(3)]
Dice_2 = [random.randint(1,7) for x in range(3)]
for i,v in enumerate(Dice_1):
print( (v,Dice_2[i]) )
Вывод:
(4, 6)
(6, 7)
(3, 6)
Комментарии:
1. Да, настолько редко, что я не понимал, что он 7-сторонний.
2. @the_R ;o) так и думал
Ответ №3:
Простое использование zip:
for x,y in zip(Dice_1,Dice_2):
print((x,y))
Или попасть в список:
[(x,y) for x,y in zip(Dice_1,Dice_2)]