Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 dict中删除多个键_Python_Dictionary - Fatal编程技术网

从Python dict中删除多个键

从Python dict中删除多个键,python,dictionary,Python,Dictionary,是否有任何有效的快捷方式可以一次从python字典中删除多个键 比如, x = {'a': 5, 'b': 2, 'c': 3} x.pop('a', 'b') print x {'c': 3} 使用: 我使用的一般形式如下: 生成要从映射中删除的键列表 在列表上循环并调用每个 例如: 假设我要删除映射中的所有字符串键。制作一份清单: >>> x={'a':5,'b':2,'c':3,1:'abc',2:'efg',3:'xyz'} >>> [k for k

是否有任何有效的快捷方式可以一次从python字典中删除多个键

比如,

x = {'a': 5, 'b': 2, 'c': 3}
x.pop('a', 'b')
print x
{'c': 3}
使用:


我使用的一般形式如下:

  • 生成要从映射中删除的键列表
  • 在列表上循环并调用每个
  • 例如:

    假设我要删除映射中的所有字符串键。制作一份清单:

    >>> x={'a':5,'b':2,'c':3,1:'abc',2:'efg',3:'xyz'}
    >>> [k for k in x if type(k) == str]
    ['a', 'c', 'b']
    
    现在我可以删除以下内容:

    >>> for key in [k for k in x if type(k) == str]: del x[key]
    >>> x
    {1: 'abc', 2: 'efg', 3: 'xyz'}
    
    取下一些钥匙 我已经测试了三种方法的性能:

    d=dict.fromkeys('abcdefghijklmnopqrstuvxyz')
    删除密钥=设置('abcdef')
    #方法1
    对于“输入/删除”键:
    德尔d[钥匙]
    #方法2
    对于“输入/删除”键:
    d、 流行音乐(键)
    #方法3
    {key:v代表key,d.items()中的v如果remove_keys中的key no}
    
    以下是100万次迭代的结果:

  • 1.88s 1.9NS/iter(100%)
  • 2.41s2.4ns/iter(128%)
  • 4.15s 4.2NS/iter(221%)
  • 因此,
    del
    是最快的

    安全地取下一些钥匙 但是,如果要安全地删除,以便不会因KeyError而失败,则必须修改代码:

    #方法1
    对于“输入/删除”键:
    如果输入d:
    德尔d[钥匙]
    #方法2
    对于“输入/删除”键:
    d、 弹出(键,无)
    #方法3
    {key:v代表key,d.items()中的v如果remove_keys中的key no}
    
  • 2.03s 2.0纳秒/国际热核实验堆(100%)
  • 2.38s 2.4NS/iter(117%)
  • 4.11s 4.1 ns/iter(202%)

  • 尽管如此,
    del
    仍然是最快的。

    非常有效
    >>> for key in [k for k in x if type(k) == str]: del x[key]
    >>> x
    {1: 'abc', 2: 'efg', 3: 'xyz'}