在列表中循环元组

时间:2013-11-06 16:47:13

标签: python loops for-loop

我想用Python制作摩尔斯电码,所以我尝试了以下内容:

L = [(2, 1), (8, 4, 2, 1)]    
data = "00:1:02"
data = [(x[:1], x[1:]) for x in data.split(':') ]
for [a,b] in data:
    if b=="": b, a = a, '0'
    #print(a,b)

现在,我正在寻找一种简单的方法来循环遍历L列表中的两个元组并将它们分开以使a通过L[0]元组和{{1}传递b元组。

在一个for循环中有类似的东西:

L[1]

我试过一些联合收割机,但我找不到合适的语法。任何人都可以提出任何建议吗?

1 个答案:

答案 0 :(得分:3)

如果您想同时迭代L[0]L[1],可以使用:

for a, b in itertools.izip_longest(L[0], L[1]):
    print a, b

上述内容会将a设置为None,因为L[1]的长度超过L[0],因此L[1]中的值会比L[0]中的值更多。 {1}}。这给出了:

2 8
1 4
None 2
None 1