Witam!
Mam listę:
kostka = [1, 2, 3, 4, 5]
Chciałbym z tego losować bez powtórzeń tyle razy ile elementów jest w liście. Czyli w tym przypadku 5 razy bez powtórzeń. Jak to najprościej zrobić? Spróbowałem z shuffle i pop, ale program kończy się a w liście zostają mi elementy:
import random
kostka = [1, 2, 3, 4, 5]
random.shuffle(kostka)
print("start " + str(kostka))
#print (len(kostka))
for x in kostka:
shot = (kostka.pop())
print(len(kostka))
print(kostka)
print(len(kostka))
Ok, inaczej napiszę o co mi chodzi.
To ma być gra typu "zgadnij liczbę".
Gracz i komputer wybierają po jednej swojej liczbie z zakresu 0-9.
lista zawiera 10 elementów (od 0 do 9)
gracze naprzemiennie próbują zgadnąć liczbę przeciwnika, gracz typuje "inputem" a komputer losuje swój strzał z listy.
No i teraz pomyślałem sobie, żeby strzały komputera się nie powtarzały, to najprościej mi będzie, po wymieszaniu shufflą, pobierać ostatni element listy a następnie go usuwać z tej listy.
Ale skoro to złe podejście, to którą pętlą czytać kolejne elementy listy?
pozdrawiam