下面的代码一次只能访问一个列表,每个循环向前看一个元素:
from itertools import izip_longest
alist = ['foo','bar','duh']
blist = ['ofo','ardavak','dot','dotdat']
for i, plus1 in izip_longest(alist, alist[1:], fillvalue=None):
iplus1 = i + plus1 if plus1 is not None else ""
for j, plus1 in izip_longest(blist, blist[1:], fillvalue=None):
jplus1 = j + plus1 if plus1 is not None else ""
如何同时为2个列表向前看每个循环1个元素?比如:
for (i,plus1),(j,plus1) in izip(izip_longest(alist, alist[1:], fillvalue=None), izip_longest(blist, blist[1:], fillvalue=None)):
print i,j
print i,j+plus1
print i+plus1,j
print i+plus1,j+plus1
所需的输出应如下所示:
foo ofo
foo ofoardavak
foobar ofo
foobar ofoardvak
bar ardavak
bar ardavakdot
barduh ardavak
barduh ardavakdot
duh dot
duh dotdotdat
dot
dotdotdat
dotdat
dotdat
输出:
可能是这样的:
但是请注意,zip()只接受
min(len(alist),len(blist))
元素,即返回的列表的长度被截断为最短参数序列的长度。你知道吗相关问题 更多 >
编程相关推荐