Sva početnička pitanja Sva početnička pitanja bi trebala da se postavljaju u ovom forumu, a ako se pretvori u kvalitetnu diskusiju interesantnu svima - prebacićemo je u odgovarajući forum. Molimo "znalce" da ne omalovažavaju početnike, ako žele da pomognu svi ćemo biti zahvalni, ako ne žele, neka preskoče ovaj forum. |
|
Alati teme | Način prikaza |
20. 12. 2010. | #1 |
Banned
Knowledge base
Datum učlanjenja: 01.07.2005
Poruke: 1.598
Hvala: 206
140 "Hvala" u 89 poruka
|
Python sortiranje listi
imam listu
a = ['pera', 'mika', 'zika'] gde pera ima key 0, a zika 2 kad uradim a.remove('mika') dobijam listu kojoj fali key 1 da li postoji neka builtin fja (ili u nekom modulu), pomocu koje mogu da uradim "sort" ove liste... odnosno da listu 0=>pera 2=>zika pretvorim u 0=>pera 1=>zika fala |
20. 12. 2010. | #2 |
Banned
Knowledge base
Datum učlanjenja: 01.07.2005
Poruke: 1.598
Hvala: 206
140 "Hvala" u 89 poruka
|
inace razlog je:
File "/usr/lib/python2.6/random.py", line 261, in choice return seq[int(self.random() * len(seq))] # raises IndexError if seq is empty IndexError: list index out of range posto radim random.choice(a) u nekoj petlji |
20. 12. 2010. | #3 |
Banned
Knowledge base
Datum učlanjenja: 01.07.2005
Poruke: 1.598
Hvala: 206
140 "Hvala" u 89 poruka
|
Trenutno izgleda vako:
Kôd:
#!/usr/bin/python import sys import smtplib from email.MIMEText import MIMEText import random people = {'Vlada':'Vlada@test.com', 'Sara':'Sara@test.com', 'Jovana':'Jovana@test.com', 'Jana':'Jana@test.com', 'Danijel':'Danijel@test.com'} people2 = people.copy() def index(req): result = "" for person in people: giftee = random.choice(people2.keys()) while giftee == person: giftee = random.choice(people2.keys()) result += person result += " --> " result += giftee result += "\n" del people2[giftee] sendMail(people[person], "Dodeljen(a) ti je: "+giftee) return result def sendMail(to, message): msg = MIMEText(message) msg['Subject'] = 'NG2010 Izvlacenje za poklone' msg['From'] = "Secret-Santa-Lutrija-doo " msg['Reply-to'] = "Secret-Santa-does-not-care " msg['To'] = to s = smtplib.SMTP() s.connect("localhost") s.sendmail("secret-santa@ferdnand.rs", to, msg.as_string()) Kôd:
File "/var/www/python.ferdinand.rs/newyear_gifts/test.py", line 17, in index giftee = random.choice(people2.keys()) File "/usr/lib/python2.6/random.py", line 261, in choice return seq[int(self.random() * len(seq))] # raises IndexError if seq is empty IndexError: list index out of range Poslednja izmena od cvele : 20. 12. 2010. u 15:36. |
20. 12. 2010. | #5 |
Banned
Knowledge base
Datum učlanjenja: 01.07.2005
Poruke: 1.598
Hvala: 206
140 "Hvala" u 89 poruka
|
Svakoj osobi iz liste treba da se dodeli random osoba iz te iste liste. Naravno netreba da dodeli istu osobu samoj sebi.
Onda svakoj osobi treba da ode mail sa imenom osobe koja joj je dodeljena. edit: http://python.ferdinand.rs/newyear_gifts/test.py edit2: ono sto sam uspeo da zakljucim je da random.choice dobija praznu listu, ali nisam ukacio zasto je prazna? people2 = people.copy() bi trebalo da napravi kopiju originalnog dict people2.keys() da vrati listu kljuceva tog dict Poslednja izmena od cvele : 20. 12. 2010. u 15:57. |
20. 12. 2010. | #6 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Nisam neki Pajtonista, ali bih to uradio ovako nekako:
Kôd:
import random people = {'Vlada':'Vlada@test.com', 'Sara':'Sara@test.com', 'Jovana':'Jovana@test.com', 'Jana':'Jana@test.com', 'Danijel':'Danijel@test.com'} names = people.keys() random.shuffle(names) matches = list(names) matches.append(matches.pop(0)) for name, match in zip(names, matches): print 'Matching {0} with {1}'.format(name, match)
__________________
blog |
"Hvala" jablan za poruku: |
20. 12. 2010. | #7 |
Banned
Knowledge base
Datum učlanjenja: 01.07.2005
Poruke: 1.598
Hvala: 206
140 "Hvala" u 89 poruka
|
nisam ni ja, prvi skript koji pisem
fala ovo radi odlicno nisam imao pojma ni za zip ni list, a ni format |
|
|