python list合并成dict

现有两个list
ks = ['中国人','水电费','观后感','维吾尔','观后感aaa','维吾尔bbb','中国人aa','水电费bb']
fz = ['中国','水电费','观后感','维吾尔']
合并结果:
result = {"中国": ["中国人", "中国人aa"]}, "维吾尔": ["维吾尔", "维吾尔bbb"], "水电费": ["水电费", "水电费bb"], "观后感": ["观后感", "观后感aaa"]}

请问怎么操作?以下是我的代码,但是感觉复杂了。

====================================================
我的代码:

#encoding=utf-8
import json
d = {}
ks = ['中国人','水电费','观后感','维吾尔','观后感aaa','维吾尔bbb','中国人aa','水电费bb']
fz = ['中国','水电费','观后感','维吾尔']


kk = []
for key in ks:
    for fenzu in fz:
        if fenzu in key:
            print fenzu,key
            kk.append({fenzu:key})


dic = {}
for _ in kk:
    for k, v in _.items():
        dic.setdefault(k, []).append(v)

print json.dumps([{k:v} for k, v in dic.items()], ensure_ascii=False)
阅读 1.8k
1 个回答
ks = ['中国人', '水电费', '观后感', '维吾尔', '观后感aaa', '维吾尔bbb', '中国人aa', '水电费bb']
fz = ['中国', '水电费', '观后感', '维吾尔']

d = {k: [v for v in ks if k in v] for k in fz}
print d
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题