词典是否允许根据 key 长度进行过滤?根据值有条件地更改字典似乎很简单,但是对键进行相同的操作呢?也就是说,删除所有显式长度不是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()))