【发布时间】:2018-12-18 14:30:01
【问题描述】:
我有一个大字典,如果键以某些值开头,我会尝试从键中删除值。下面是字典的一个小例子。
a_data = {'78567908': {'26.01.17', '02.03.24', '26.01.12', '04.03.03', '01.01.13', '02.03.01', '01.01.10', '26.01.21'}, '85789070': {'26.01.02', '09.01.04', '02.05.04', '02.03.17', '02.05.01'}, '87140110': {'03.15.25', '03.15.24', '03.15.19'}, '87142218': {'26.17.13', '02.11.01', '02.03.22'}, '87006826': {'28.01.03'}}
读完字典后,我想从所有以“26”开头的键中删除值。或“02”。可能会留下没有值的键(空集)。
我确实有有效的代码:
exclude = ('26.', '02.')
f_a_data = {}
for k, v in a_data.items():
f_a_data.setdefault(k,[])
for code in v:
print (k, code, not code.startswith(exclude))
if not code.startswith(exclude):
f_a_data[k].append(code)
print('Filtered dict:')
print(f_a_data)
这会返回一个过滤后的字典:
Filtered dict:
{'78567908': ['04.03.03', '01.01.13', '01.01.10'], '85789070': ['09.01.04'], '87140110': ['03.15.25', '03.15.24', '03.15.19'], '87142218': [], '87006826': ['28.01.03']}
问题 1:这是过滤字典的最佳方法吗?
问题 2:如何修改上述 sn-p 以返回与原始 dict 类似的集合中的值?
【问题讨论】:
标签: python-3.x