itertools.chain()可以对多个容器的不同对象做循环迭代,例如

x = [1,2,3,4]
y = ['1','2','3','4']
for x in chain(x,y):
	print(x)
1
2
3
4
1
2
3
4

或者

x = [1,2,3,4]
y = ['1','2','3','4']
for x in chain(*[x,y]):
	print(x)
1
2
3
4
1
2
3
4

接触这个是在看item_base的代码,有这样一行

row_ind, col_ind = zip(*itertools.chain(*[[(i, w) for w in doc] for i, doc in enumerate(documents_as_ids)]))

这里每个doc是一个单词w组成的文档,通过chain将所有的doc展开为(i,w),其中i代表doc,zip(*)与zip刚好相反,将每个tuple展开为两个list,这样获得了两个list,一个表示文档索引,一个表示w

itertools.chain()

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐