首页 文章

一旦co出现在文件文本的同一行中,就为两个列表的项创建一个dict

提问于
浏览
2

如果有两个项目列表,并且任务是创建两个列表项目的dict(list1中的一个项目作为键,一个项目来自list2作为值)一旦两个项目共同出现在同一行文件中文本 . 还有另外一种方式与我的后续试验不同吗?谢谢

di =  {}
for line in file_text:
    for x in list1:
        for y in list2:
            if x in line and y in line:
                di[x]=y

1 回答

  • 0

    为获得最佳性能结果,您应该使用itertools.izip和Python的dict comprehension syntax

    import itertools
    di = {k: v for line in file_text for k, v in itertools.izip(list1, list2) if k in line and v in line}
    

    与嵌套的 for 循环相比,字典理解是创建字典的更快的替代方法,而 itertools.izip 对于内存消耗比单纯的 zip 更经济(特别是对于较大的列表) .

相关问题