Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环列表中的元组_Python_Loops_For Loop - Fatal编程技术网

Python 循环列表中的元组

Python 循环列表中的元组,python,loops,for-loop,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]元组和b通过L[1]元组 类

我想用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]
元组和
b
通过
L[1]
元组

类似于一个for循环中的内容:

for A in l[0], B in l[1]:

#A to do somethings with a and 
#B to do something with b

我尝试了一些联合收割机,但没有找到正确的语法。任何人都可以提供建议吗?

如果您想同时迭代
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]
中要多。这使得:

2 8
1 4
None 2
None 1

如果要同时迭代
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]
中要多。这使得:

2 8
1 4
None 2
None 1

如果要同时迭代
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]
中要多。这使得:

2 8
1 4
None 2
None 1

如果要同时迭代
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]
中要多。这使得:

2 8
1 4
None 2
None 1

在您的示例中,
L
中的元组长度不同,当
L[0]
已用尽,但
L[1]
中仍有更多元素时,您希望采取什么行为?这是一个问题。这就是我的联合收割机不能工作的原因。我需要a和b分别登记两次和四次。但我想用更少的代码行来完成。这就是我变得如此复杂的原因。在您的示例中,
L
中的元组长度不相同,当
L[0]
已用尽,但
L[1]
中还有更多元素时,您希望采取什么样的行为?这是一个问题。这就是我的联合收割机不能工作的原因。我需要a和b分别登记两次和四次。但我想用更少的代码行来完成。这就是我变得如此复杂的原因。在您的示例中,
L
中的元组长度不相同,当
L[0]
已用尽,但
L[1]
中还有更多元素时,您希望采取什么样的行为?这是一个问题。这就是我的联合收割机不能工作的原因。我需要a和b分别登记两次和四次。但我想用更少的代码行来完成。这就是我变得如此复杂的原因。在您的示例中,
L
中的元组长度不相同,当
L[0]
已用尽,但
L[1]
中还有更多元素时,您希望采取什么样的行为?这是一个问题。这就是我的联合收割机不能工作的原因。我需要a和b分别登记两次和四次。但我想用更少的代码行来完成。这就是我变得如此复杂的原因。