如何打印python列表,减去特定元素?

时间:2016-11-18 21:15:45

标签: python python-2.7 list python-3.x

假设:

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

我如何

print commands['onboarding'].keys() 

没有在列表中打印键'default'?我试图在我的实现中隐藏它。如果在两个版本的python中都有解释,则可以获得奖励积分。

谢谢!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

如果您from __future__ import print_function,您可以使用以下两个版本进行以下操作:

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

您可以从所有适用的密钥构建列表,然后在print调用中解压缩。当然,如果您需要输出中的列表,请不要解压缩(即从列表推导的开头删除*)。

答案 2 :(得分:1)

您也可以像Python 2.7一样使用filter

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()