我怎么能得到一本字典来生成两个字典,其中一些键是相同的

时间:2017-12-03 21:15:49

标签: python python-3.x list dictionary

我有一本字典,what

what = {'a': ['b'], 'c': ['d\n', 'e\n', 'f'], 'd': ['f', 'g']}

并且需要将带有'/ n'的项目分开并且没有'/ n'(顺序很重要,需要对值进行排序。):

[[{'a': ['b'], 'c': ['f'], 'd': ['f', 'g']}], [{'c': ['d\n', 'e\n']}]]

这就是我的尝试:

    def lst(profiles_file: TextIO):
        solve_lst = []
        new_lst = fix_files(profiles_file)
        for k, v in new_lst.items():
            for i in v:
                if i.find('\n') != -1:
                get_index = [v.index(i)]
                solve_lst.append(get_index)
     return solve_lst

如果不做任何复杂的事情我怎么能得到这个?

1 个答案:

答案 0 :(得分:1)

以下是使用defaultdict

的解决方案
from collections import defaultdict

def lst(profiles_file: TextIO):
    initial_dict = fix_files(profiles_file)

    with_n = defaultdict(list)
    without_n = defaultdict(list)

    for k, v in initial_dict.items():
        for item in v:
            if '\n' in item:
                with_n[k].append(item)
            else:
                without_n[k].append(item)

    return [without_n, with_n]