2016-04-07 32 views
1

Ich soll in der Lage sein, eine bestimmte Zahl in eine Reihe von Zahlen zu konvertieren, die in einer Liste sein werden (Beispiel: gegeben die Zahl 10, Liste enthält 1 2 3 4 5 6 7 8 9 10), von dieser Liste soll es alle geraden Zahlen löschen und sowohl die Liste mit allen Zahlen als auch die Liste ohne alle geraden Zahlen drucken. Ich habe viele nutzlose Dinge ausprobiert, ohne eine genaue Vorstellung davon zu bekommen, wie man es macht. (Versuchte viele Tutorials auf Listen und Python-Foren)Lesen Sie eine Python-Liste und entfernen Sie bestimmte Zahlen aus der angegebenen Liste

+2

Können Sie uns zeigen den Code, den Sie bisher versucht haben? –

+0

limite = int (raw_input ("Gib mir ein Limit:")) lim_lista = Bereich (limite) Drucken lim_lista –

Antwort

4
given_number = 10 
l = list(range(1, given_number + 1)) 
odds = [i for i in l if i%2] 
print(l, odds) 
+0

Scheint ziemlich einfach. Ich müsste nur "Given_number = 10" für die Benutzereingabe ersetzen. Vielen Dank! –

+1

@IsaacLo Sie können die Antwort als eine Lösung für danke markieren;) –

-1
myRange = 10 
myList = list(xrange(myRange)) 

evenList = [x for x in myList if x % 2 == 0] 
oddList = [x for x in myList if x % 2 != 0] 

print myList 
print evenList 
print oddList 
0

Unter der Annahme, Python 3:

user_input = input("Please give the number: ") 
lst = [i+1 for i in range(0, user_input)] 
odd_lst = [i for i in lst if i%2] 
+0

'[i + 1 für i im Bereich (0, user_input)]' ist eine Art Overkill. Führe stattdessen 'list (range (1, given_number + 1))' aus. – ozgur

+0

Wie? Ich dachte, es wäre eine gute alternative Lösung. (Ich bin ziemlich neu bei der Verwendung von List Comprehensions, ist 'list()' besser als die Verwendung von Comprehensions?) –

1

Bereich hat einen dritten Parameter, step.

Für ungerade:

range(1, number + 1, 2) 

Noch:

range(2, number + 1, 2) 
Verwandte Themen