如果有两个项目列表,并且任务是创建两个列表项目的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
为获得最佳性能结果,您应该使用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 更经济(特别是对于较大的列表) .
for
itertools.izip
zip
1 回答
为获得最佳性能结果,您应该使用itertools.izip和Python的dict comprehension syntax:
与嵌套的
for
循环相比,字典理解是创建字典的更快的替代方法,而itertools.izip
对于内存消耗比单纯的zip
更经济(特别是对于较大的列表) .