Python|列表中的配对迭代
列表迭代在编程中很常见,但有时需要成对打印元素。这个特殊的问题很常见,并且有一个解决方案总是很方便。让我们讨论一些可以解决这个问题的方法。
方法#1:使用列表推导
列表推导可用于通过访问列表中的当前元素和下一个元素然后打印它们来打印对。将最后一个元素与第一个元素配对以形成循环对时必须小心。
# Python3 code to demonstrate
# pair iteration in list
# using list comprehension
from itertools import compress
# initializing list
test_list = [0, 1, 2, 3, 4, 5]
# printing original list
print ("The original list is : " + str(test_list))
# using list comprehension
# to perform pair iteration in list
res = [((i), (i + 1) % len(test_list))
for i in range(len(test_list))]
# printing result
print ("The pair list is : " + str(res))
输出:
The original list is : [0, 1, 2, 3, 4, 5]
The pair list is : [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 0)]
方法 #2:使用zip()
+ 列表切片
zip
函数可用于在列表中提取对,切片可用于将当前元素与下一个元素连续配对以进行有效配对。
# Python3 code to demonstrate
# pair iteration in list
# using zip() + list slicing
from itertools import compress
# initializing list
test_list = [0, 1, 2, 3, 4, 5]
# printing original list
print ("The original list is : " + str(test_list))
# using zip() + list slicing
# to perform pair iteration in list
res = list(zip(test_list, test_list[1:] + test_list[:1]))
# printing result
print ("The pair list is : " + str(res))
输出:
The original list is : [0, 1, 2, 3, 4, 5]
The pair list is : [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 0)]