
30.09.2022, 08:56
|
|
Участник форума
Регистрация: 17.04.2020
Сообщений: 184
С нами:
3197792
Репутация:
83
|
|
Создаёшь словарь, помещаешь значение в ключ а булево значение, которое показывает, использовалось ли значение, в само значение.
далее просто проходишь циклом по массиву, если значение ключа будет True - значит он уже использовался и его мы пропускаем.
Вот пример работы. Этот код никогда не выведет два одинаковых значения, а когда они кончатся - закончит работу.
Для твоего случая скорее подойдёт одинарных проход пока не будет найдено свободное значение, который выглядит вот так:
Python:
Код:
import
random
values
=
{
"Значение 1"
:
False
,
"Значение 2"
:
False
,
"Значение 3"
:
True
,
"Значение 4"
:
False
,
"Значение 5"
:
False
}
def
get_rand_value
(
)
:
while
True
:
random_value
=
random
.
randint
(
1
,
5
)
j
=
0
for
k
,
v
in
values
.
items
(
)
:
j
+=
1
if
(
j
==
random_value
)
and
(
not
v
)
:
print
(
k
)
values
[
k
]
=
True
return
get_rand_value
(
)
|
|
|