Liste in Menge

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.
Antworten
duodiscus
User
Beiträge: 97
Registriert: Sonntag 6. April 2014, 16:10

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?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@duodiscus: set(L); Mengen sind nicht dafür geeignet, nach Bereichen zu filtern.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Code: Alles auswählen

any(1 < value < 10 for value in data)
;-)
Das Leben ist wie ein Tennisball.
duodiscus
User
Beiträge: 97
Registriert: Sonntag 6. April 2014, 16:10

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.
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.
Antworten