将未定义的值作为参数传递给字典

时间:2014-03-01 15:01:15

标签: python dictionary undefined

我如何pass或将未定义的值作为参数发送到字典?请考虑以下情况:

Dict = {(1,'a'): 2, (1,''): 1, (1,'c'): 1, (3,'1'): 3};


print Dict [(1, pass)];

我想获得第一个参数为1的字典条目列表。

例如

Dict [(1, pass)]

我希望它返回:

{(1,'a'): 2, (1,''): 5, (1,'c'): 7}

怎么做?

此致

2 个答案:

答案 0 :(得分:1)

除了您期望在键中的值之外,不需要传递任何其他内容,即1.您可以构建一个新的dict,使用这样的字典理解

my_dict = {(1,'a'): 2, (1,''): 1, (1,'c'): 1, (3,'1'): 3}
print {k: my_dict[k] for k in my_dict if 1 in k}
# {(1, 'c'): 1, (1, 'a'): 2, (1, ''): 1}

注意: pass是Python中的一个语句,不能用于代替值。也许你的意思是None

编辑:如果您确定您要查找的值始终位于第一个位置,您可以这样做(感谢@zhangxaochen :))

print {k: my_dict[k] for k in my_dict if 1 == k[0]}

答案 1 :(得分:0)

我会创建一个函数来执行此操作:

def filterFirst(a, Dict):
  return {k: Dict[k] for k in Dict if k[0] == a}

您还可以创建一个过滤器,用于过滤键元组的任何索引:

def filterDictionary(a, Dict, index):
  return {k: Dict[k] for k in Dict if k[index] == a}

确保字典中只有元组作为键。