Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Losowanie elementow z list

2,514 views
Skip to first unread message

grandu

unread,
Nov 25, 2006, 4:28:37 PM11/25/06
to
Witam, jestem początkującym jeśli chodzi o pythona i o
programowanie. Chciałem zrobić mały programik który wylosowałby z
5 elementów z każdej listy,ale tak aby nie powtarzały się te same.
Na przykład : 2d, 5d, Js, 5c, 3h
Probowałem z funkcją random ale ona chyba odnosi się tylko do liczb.


Proszę o jakąś podpowiedź. :)

[CODE]
d = ['2d','3d','4d','5d','6d','7d','8d','9d','10d','Jd','Qd','Kd','Ad']
h = ['2h','3h','4h','5h','6h','7h','8h','9h','10h','Jh','Qh','Kh','Ah']
s = ['2s','3s','4s','5s','6s','7s','8s','9s','10s','Js','Qs','Ks','As']
c = ['2c','3c','4c','5c','6c','7c','8c','9c','10c','Jc','Qc','Kc','Ac']

[/CODE]

Jaroslaw Zabiello

unread,
Nov 25, 2006, 4:46:59 PM11/25/06
to
Dnia 25 Nov 2006 13:28:37 -0800, grandu napisał(a):

> Chciałem zrobić mały programik który wylosowałby z
> 5 elementów z każdej listy,ale tak aby nie powtarzały się te same.
> Na przykład : 2d, 5d, Js, 5c, 3h
> Probowałem z funkcją random ale ona chyba odnosi się tylko do liczb.

I dobrze. Zamiast losować zawartość listy, możesz losować indeksy dla
tablic, np.

from random import randint
d = ['2d','3d','4d','5d','6d']
print d[randint(0,len(d)]

--
Jaroslaw Zabiello
http://blog.zabiello.com

grandu

unread,
Nov 25, 2006, 5:08:23 PM11/25/06
to

Jaroslaw Zabiello napisał(a):

> from random import randint
> d = ['2d','3d','4d','5d','6d']
> print d[randint(0,len(d)]

Chyba zapomniałeś jednego nawiasu : print d[randint(0,len(d))]
Hm niby działa ale nie zawsze. Raz działa, a raz nie działa, gdy
włącze program wywala błąd(nie uruchamia się wcale okienko - znika
po chwili). A kod wygląda tak :

************************************
from random import randint


d = ['2d','3d','4d','5d','6d','7d','8d','9d','10d','Jd','Qd','Kd','Ad']
h = ['2h','3h','4h','5h','6h','7h','8h','9h','10h','Jh','Qh','Kh','Ah']
s = ['2s','3s','4s','5s','6s','7s','8s','9s','10s','Js','Qs','Ks','As']
c = ['2c','3c','4c','5c','6c','7c','8c','9c','10c','Jc','Qc','Kc','Ac']


print d[randint(0,len(d))]
print h[randint(0,len(h))]
print s[randint(0,len(s))]
print c[randint(0,len(c))]
print d[randint(0,len(d))]

a = raw_input("Enter: ")
************************************
Aczkolwiek do końca to chyba nie jest tak jakbym chciał. Myślę ,że
wszystkie te dane dodam do jednego "worka" np d = ['2d', ... aż do
'Ac'] , i najważniejsze ,żeby sie nie powtarzały.

atla...@wp.pl

unread,
Nov 25, 2006, 5:23:11 PM11/25/06
to
Jest idealna funkcja do takich zastosowań.: sample

import random

random.sample(lista,liczba_lelementów_do_losowania)

i to wszystko!!!!


grandu napisał(a):

atla...@wp.pl

unread,
Nov 25, 2006, 5:24:56 PM11/25/06
to

grandu napisał(a):


import random

random.sample(lista,liczba_elementow_do_losowania)

to wszystko !!!

grandu

unread,
Nov 25, 2006, 5:33:52 PM11/25/06
to

atlas...@wp.pl napisał(a):

> import random
>
> random.sample(lista,liczba_elementow_do_losowania)
>
> to wszystko !!!

Dziękuję bardzo , działa pięknie :)

0 new messages