【发布时间】:2020-01-02 20:30:41
【问题描述】:
我有一个具有相同长度的不同键的字典:
list_in_dict = list(range(0, 10))
test_dict = {"A" : list_in_dict , "B": list_in_dict , "C": list_in_dict}
然后我有一个这样的索引列表:
delete_index_list = [1,5,7]
我想删除键中的所有元素,其中位置对应索引。
我试过了(但完全失败了):
for i in range(len(delete_index_list)):
del(test_dict["A"][delete_index_list[i]])
del(test_dict["B"][delete_index_list[i]])
del(test_dict["C"][delete_index_list[i]])
可能我必须在这里使用列表理解?实现此结果的最紧凑方法是什么:
test_dict
Out:
{'A': [0, 2, 3, 4, 6, 8, 9],
'B': [0, 2, 3, 4, 6, 8, 9],
'C': [0, 2, 3, 4, 6, 8, 9]}
【问题讨论】:
-
dict 不保证键的顺序。如果您有严格的关系 - 手动删除或使用键和索引之间的映射
-
按照您构建
test_dict的方式,您只需从键A中删除项目,因为其他值是对相同list_in_dict的引用
标签: python list dictionary indexing list-comprehension