2016-05-12 14 views
-6

, die gerade für eine Abschlussprüfung studieren und ich stolperte über dieses Praxisproblem. Ich verstehe, wie man alle geraden und ungeraden Zahlen innerhalb einer Liste findet, aber ich habe 0 Idee, wie man sie ändert. Mein Buch und Klasse Noten haben bewiesen, null Hilfe sein, damit jeder Einblick jemand starkSchreiben Sie eine Funktion, die eine Liste von ganzzahligen Werten als Parameter akzeptiert. Ersetze alle geraden Zahlen mit einer 0 und alle ungeraden Zahlen mit einer 1

+0

Ihre Frage ist zu weit gefasst. Du hast gesagt, du hast es geschafft, die geraden und ungeraden Zahlen deiner Liste zu finden, oder? Sie möchten also wissen, wie man eine beliebige Funktion schreibt, die auf ihnen funktioniert? Es gibt keine globale Möglichkeit, dies zu tun (obwohl das numpy-Paket eine Menge eingebauter Funktionen bereitstellt, die Listen von int als Argumente aufnehmen). Zeigen Sie uns Ihren Code mit der Funktion, die Sie auf Ihre Liste anwenden möchten. – ysearka

Antwort

1
test_l = list(range(100)) 

def even_odd(l): 
    for i, item in enumerate(l): 
     l[i] = item % 2 
    return l 

print(even_odd(test_l)) 

Die Funktion durchläuft die Liste geschätzt wäre bieten könnte und ersetzt jedes Element es aussieht. Wenn die Zahl ungerade ist, behält eine Division durch 2 eine Pause bei (Modulo (%) gibt den Rest einer Division zurück). Wenn es gerade ist, dann behält eine Division durch 2 keine Pause, also 0.

Wichtig zu beachten ist, dass die Liste an Ort und Stelle geändert wird, was bedeutet, dass test_l auch geändert wurde.

+0

Eine Erklärung wäre nett. – Matthias

+0

@ Matthias Ich habe eine hinzugefügt, hatte auch einen kleinen Fehler drin, den ich korrigiert habe. –

0
l = [1,2,3,4,5,6] 
m = [x % 2 for x in l] 
print(m) 

Ausgang:

[1, 0, 1, 0, 1, 0] 
Verwandte Themen