2016-11-18 3 views
1

Дано:Как распечатать список python, минус определенный элемент?

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

Как я

print commands['onboarding'].keys() 

без печати ключ 'по умолчанию' в списке? Я пытаюсь скрыть это в моей реализации. Бонусные баллы, если есть объяснение в обеих версиях python.

Спасибо!

ответ

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

Мой человек! Спасибо. Оглядываясь на несколько часов, быстрый ответ очень приветствуется. – Reciever80

1

from __future__ import print_function Если вы можете получить следующие работы с обеими версиями:

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

, где вы строите список из всех доступных ключей и распаковать в print вызова. Конечно, если вам нужен список на выходе, не распаковывайте (я удаляю * с начала понимания списка).

1

Вы можете также использовать filter как так для Python 2.7

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

или как это в Python 3

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

В Python 3, filter возвращает итератор filter объекта, а не список, как и в Python 2, поэтому вы должны обернуть его в list()

Смежные вопросы