Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从给定列表中出现的键中提取子字典_Python_Python 2.7_Python 3.x - Fatal编程技术网

Python 从给定列表中出现的键中提取子字典

Python 从给定列表中出现的键中提取子字典,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,假设我有一本字典,看起来像这样: {1=>a,2=>b,3=>c,4=>d} 下面是一个列表: [1,2,3] 有没有一个方法会返回一个只包含 {1=>a,2=>b,3=>c}常规的听写理解可以做到: d = {1: 'a', 2: 'b', 3: 'c', 4: 'd'} keys = [1, 2, 3] dct = {key: d[key] for key in keys} print(dct) # {1: 'a', 2: 'b', 3: 'c'} 有两种方法可以处理原始词典中未包含

假设我有一本字典,看起来像这样:

{1=>a,2=>b,3=>c,4=>d}

下面是一个列表:

[1,2,3]

有没有一个方法会返回一个只包含


{1=>a,2=>b,3=>c}

常规的听写理解可以做到:

d = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
keys = [1, 2, 3]

dct = {key: d[key] for key in keys}
print(dct)  # {1: 'a', 2: 'b', 3: 'c'}

有两种方法可以处理原始词典中未包含的
键中的键:

keys = [1, 2, 3, 7]

# default value None
dct = {key: d[key] if key in d else None for key in keys}
print(dct)  # {1: 'a', 2: 'b', 3: 'c', 7: None}

# ignore the key if it is not in the original dict
dct = {key: d[key] for key in set(keys).intersection(d.keys())}
print(dct)  # {1: 'a', 2: 'b', 3: 'c'}

很好。谢谢。时间限制:)你介意快速告诉我检查列表中的密钥是否确实存在的语法吗?@kjanko为此添加了一个更新。