2 Stimmen

Wenden Sie die Indikatorfunktion auf Liste an

Gibt es einen einfachen Weg, eine Indikatorfunktion auf eine Liste anzuwenden? d.h. Ich habe eine Liste mit einigen Zahlen darin und möchte gerne eine andere Liste derselben Größe zurückgeben, in der z.B. Einsen dort stehen, wo die positiven Zahlen in der Ursprungsliste waren, und Nullen dort, wo die negativen Zahlen in der Ursprungsliste waren.

10voto

BrenBarn Punkte 228691

Verwenden Sie einfach eine Listenkomprehension:

>>> orig = [-3, 2, 5, -6, 8, -2]
>>> indic = [1 if x>0 else 0 for x in orig]
>>> indic
[0, 1, 1, 0, 1, 0]

8voto

Ry- Punkte 208020

Listenkomprehensionen!

bysign = [int(x >= 0) for x in somelist]

Hier ist eine Demo.

1voto

Twisted Code Punkte 404

Um die Ergebnisse deines Beispiels zu produzieren, hätte ich wahrscheinlich Folgendes getan

cmp_list=map(cmp, your_list)
one_zero_list=[]
for item in cmp_list:
    if item < 0:
        one_zero_list.append(0)
    elif item==0:
        one_zero_list.append(0) #du hast nicht wirklich gesagt, was mit 0 zu tun ist
    else:
        one_zero_list.append(1)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X