2016-11-18 3 views
1

Gegeben:Wie drucke ich eine Python-Liste abzüglich eines bestimmten Elements?

commands = dict(
    onboarding = dict(
     default = "default", 
     status = "APPROVED", 
     date = "11/18/15" 
    ) 
    team = dict(
     members = getTeamMembers() 
) 

Wie kann ich

print commands['onboarding'].keys() 

ohne den Druck der Taste 'default' in der Liste? Ich versuche das in meiner Implementierung zu verstecken. Bonuspunkte, wenn es in beiden Versionen von Python eine Erklärung gibt.

Vielen Dank!

Antwort

2
print [key for key in commands['onboarding'] if key != 'default'] 
+0

wickeln Mein Mann! Vielen Dank. Sich für ein paar Stunden umgesehen, wird die schnelle Antwort sehr geschätzt. – Reciever80

1

Wenn Sie from __future__ import print_function Sie folgende Arbeiten mit beiden Versionen erhalten können:

d=commands['onboarding'] 
print(*[d[i] for i in d if i != 'default']) 

, wo Sie eine Liste von allen geltenden Schlüssel bauen und im print Aufruf entpacken. Natürlich, wenn Sie eine Liste in der Ausgabe benötigen, nicht entpacken (d. H. * vom Anfang der Liste Verständnis entfernen).

1

Sie auch filter wie so für Python 2,7

print filter(lambda key: key != 'default', commands['onboarding']) 

oder wie dies in Python 3

print(list(filter(lambda key: key != 'default', commands['onboarding']))) 

In Python 3 filter gibt ein iterable filter Objekt und nicht eine Liste als verwenden können in Python 2, also müssen Sie es in list()

Verwandte Themen