元组元素列表中的成对迭代
Pairwise iteration in list of tuples element
在 python 中,我想通过元组 (lot) 元素列表进行成对迭代。我的拍品如下图:
lot = [('490001', 'A-ARM1'),
('490001', 'A-ARM2')]
我想创建一个迭代变量循环遍历每个元组的第二个元素,它将匹配:
iter: A-, AR, M1 (cycle 1)
iter: A-, AR, M2 (cycle 2)
我在堆栈上找到了这个 (Iterate over a string 2 (or n) characters at a time in Python)。
不幸的是,我无法在我的示例中使用它。有人能给我一个正确的方向吗?
如果嵌套循环是可以接受的(根据您的评论),那么我认为您可以使用 the grouper recipe from more-itertools(或 copy-paste 在您的代码库中使用该函数):
from more_itertools import grouper
lot = [('490001', 'A-ARM1'),
('490001', 'A-ARM2')]
# Tuple-unpacking w/underscore is a convention to indicate we don't
# care about the first element, only the second one
for _, elem in lot:
for i, j in grouper(elem, 2):
print(i + j)
# Output
# A-
# AR
# M1
# A-
# AR
# M2
在 python 中,我想通过元组 (lot) 元素列表进行成对迭代。我的拍品如下图:
lot = [('490001', 'A-ARM1'),
('490001', 'A-ARM2')]
我想创建一个迭代变量循环遍历每个元组的第二个元素,它将匹配:
iter: A-, AR, M1 (cycle 1)
iter: A-, AR, M2 (cycle 2)
我在堆栈上找到了这个 (Iterate over a string 2 (or n) characters at a time in Python)。
不幸的是,我无法在我的示例中使用它。有人能给我一个正确的方向吗?
如果嵌套循环是可以接受的(根据您的评论),那么我认为您可以使用 the grouper recipe from more-itertools(或 copy-paste 在您的代码库中使用该函数):
from more_itertools import grouper
lot = [('490001', 'A-ARM1'),
('490001', 'A-ARM2')]
# Tuple-unpacking w/underscore is a convention to indicate we don't
# care about the first element, only the second one
for _, elem in lot:
for i, j in grouper(elem, 2):
print(i + j)
# Output
# A-
# AR
# M1
# A-
# AR
# M2