Liste mit Zufallszahlen füllen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
DasIch
User
Beiträge: 2465
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Mittwoch 18. März 2009, 17:08

Code: Alles auswählen

In [82]: def mmap(func, times, seq):
    return ([func(item) for _ in xrange(times)] for item in seq)
   ....:

In [84]: list(mmap(unfold_args(randint), 2, (((1, 10), ) * 10)))
Out[84]:
[[9, 4],
 [8, 1],
 [8, 7],
 [6, 5],
 [2, 6],
 [5, 10],
 [10, 9],
 [7, 2],
 [1, 4],
 [2, 5]]
Was unfold_args macht sollte klar sein.
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Mittwoch 18. März 2009, 17:08

Nicht ganz, weil du dann ja auch noch das Ganze __*__-Zeugs bekommst. So wäre es besser:

Code: Alles auswählen

[getattr(types, type) for type in dir(types) if '__' not in type]
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Mittwoch 18. März 2009, 18:56

@ 10 * [None] vs xrange(10): xrange ist eigentlich der am meisten genutze Weg. Im Grunde ist es egal, aber grundsätzlich würde ich keine beliebigen Elemente zum "xmal" iterieren benutzen, sonderen immer {x,}range Objekte, selbst wenn ich die Zahl eigentlich nicht brauche. (und "i" als Variable).
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Mittwoch 18. März 2009, 19:47

bremer hat geschrieben:Was ist eigentlich schneller? range(10) oder 10 * [None]?
Sollte es hier wirklich auf Performance ankommen - bei n=10 sicher nicht - , dann ist die Erzeugung der Zufallszahlen der Flaschenhals: randint() ist die langsamste Methode, randrange() ist etwas schneller und random() ist erheblich schneller als die beiden anderen Varianten, und zwar selbst dann noch, wenn man ganzzahlige Werte eines bestimmten Intervalls damit erzeugt.
Benutzeravatar
snafu
User
Beiträge: 5537
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mittwoch 18. März 2009, 20:36

str1442 hat geschrieben:(und "i" als Variable).
Was spricht gegen `dummy`? Gut, das ist jetzt etwas kleinkariert, aber wenn ich die Namen nach ihrer Verwendung vergebe und weiß, dass ich `i` quasi nur als Mittel zum Zweck benötige, macht das ja eigentlich Sinn, find ich.
shcol (Repo | Doc | PyPi)
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Mittwoch 18. März 2009, 21:13

Für dummy wird (zumindest in den Codeschnipseln hier im Forum) gerne _ verwendet.
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Mittwoch 18. März 2009, 21:35

Was spricht gegen `dummy`?
Gar nichts, ich hab das für mich so festgelegt, das ich immer, wenn ich nur X Wiederholungen brauch oder einfach einen Zähler, ich i als Name + xrange/range Objekt verwende. "i" ist sowieso ziemlicher Standard und wenn ich den Index nicht brauche, lass ich ihn in Ruhe. Ist dann ausbaufähig und ich habe keinerlei Probleme mit solchem 10 * [None] Zeug. Und in Sprachen wie C mit der Zähl-For-Schleife hab ich das auch immer so gesehen / so gemacht. Und einfach "_" find ich doof ;).
Antworten