根据键的长度删除字典条目

时间:2019-11-14 20:36:30

标签: python

词典是否允许根据 key 长度进行过滤?根据值有条件地更改字典似乎很简单,但是对键进行相同的操作呢?也就是说,删除所有显式长度不是4个字符的字典键会怎样?

4 个答案:

答案 0 :(得分:6)

您可以使用https://github.com/nmslib/hnswlib

d = {'fooo': 1, 'bar': 2, 'foo': 3}
result = {k: v for k, v in d.items() if len(k) == 4}

print(result)

输出

{'fooo': 1}

答案 1 :(得分:0)

这可以通过以下步骤实现:

new_dict = {k: v for k, v in old_dict.items() if len(k) == 4}

答案 2 :(得分:0)

正如krflol所说,如果您不想建立一本全新的词典, 而不是只修改您的旧字典,一个简单的for循环就可以做到:

my_dict = {"a": 1, "abcd": 4, "": 9, "xyzt": 16}

for k in list(my_dict):
    if len(k) != 4:
        del my_dict[k]

print(my_dict)

答案 3 :(得分:0)

另一种方法可能是使用过滤器,例如:

my_dict = dict(filter(lambda k: len(k) != 4, my_dict.items()))