Seite 1 von 1
Liste in Menge
Verfasst: Dienstag 15. April 2014, 13:10
von duodiscus
Ich habe eine Liste erzeugt und möchte diese gerne in eine Menge überführen
meine liste ist: L = [ ]
und wird mit zufallszahlen gefüllt.
diese möchte ich nun in einer Menge überführen. Wie geht das mit 'set()'?
Danach möchte ich in der Menge eine Überprüfung anstellen, z.B.: ob Werte zwischen 1. und 10 darin enthalten sind.
Kann mir da jemand weiterhelfen?
Re: Liste in Menge
Verfasst: Dienstag 15. April 2014, 13:58
von Sirius3
@duodiscus: set(L); Mengen sind nicht dafür geeignet, nach Bereichen zu filtern.
Re: Liste in Menge
Verfasst: Dienstag 15. April 2014, 14:10
von /me
Eventuell suchst du
any.
Code: Alles auswählen
>>> import random
>>> data = [random.randint(1, 20) for _ in range(10)]
>>> print any(True for value in data if 1 < value < 10)
True
Re: Liste in Menge
Verfasst: Dienstag 15. April 2014, 14:49
von EyDu
Re: Liste in Menge
Verfasst: Dienstag 15. April 2014, 16:24
von duodiscus
Hmm, also kann ich die Listeninhalte nicht einfach in eine Menge überführen?
Code: Alles auswählen
import random
def f():
L = [ ]
for i in range(1,1001):
i = random.randrange(1, 101)
L.append(i)
return(L)
Und das soll jetzt von der Liste in eine Menge.
Re: Liste in Menge
Verfasst: Dienstag 15. April 2014, 17:19
von BlackJack
@duodiscus: Wie das geht hat Sirius3 doch schon gezeigt.
Edit: Du solltest Dir übrigens gar nicht erst angewöhnen so schlechte, weil nichtssagende Namen zu verwenden. Und nicht den selben Namen für verschiedene Dinge im gleichen Kontext verwenden. Das `i` sollte entweder als Laufvariable verwendet werden oder für ganze Zufallszahlen, aber nicht für beides in der selben Schleife. Das ist verwirrend.
Edit:
Code: Alles auswählen
from random import randint
def create_random_numbers(count, min_value, max_value):
return [randint(min_value, max_value) for _ in xrange(count)]
def main():
random_numbers = create_random_numbers(1000, 1, 100)
random_numbers_without_duplicates = set(random_numbers)
print random_numbers_without_duplicates
if __name__ == '__main__':
main()
Bei der Gelegenheit kannst Du dann gleich mal ausrechnen wie (un)wahrscheinlich es ist, dass bei *den* Eingabezahlen kein `set` mit allen 100 möglichen Werten heraus kommt.