Python|列表中的交替骑行
有时,在使用Python列表时,我们可能会遇到需要以不同方式执行列表访问/打印的问题。在一些变体中,可能需要以交替循环方式打印列表,即从前面打印元素并交替读取。这是学校编程中的一个流行问题。让我们讨论一下可以执行此任务的某种方式。
方法:使用reversed() + islice() + iter() + cycle() + next()
+ list comprehension
可以使用上述功能的组合来执行此任务。其中reversed() and iter()
分别用于创建反向和正常序列列表的迭代器, cycle()
执行交替访问的任务。 islice()
执行提取元素并构造到新列表的任务。 next()
执行访问元素的任务。
代码 :
# Python3 code to demonstrate working of
# Alternate Cycling in list
# using reversed() + islice() + iter() + cycle() + next() + list comprehension
from itertools import islice, cycle
# initialize list
test_list = [5, 6, 8, 9, 10, 21, 3]
# printing original list
print("The original list is : " + str(test_list))
# Alternate Cycling in list
# using reversed() + islice() + iter() + cycle() + next() + list comprehension
res = [next(i) for i in islice(cycle((iter(test_list),
reversed(test_list))), len(test_list))]
# printing result
print("Alternate Cyclic iteration is : " + str(res))
输出 :
The original list is : [5, 6, 8, 9, 10, 21, 3]
Alternate Cyclic iteration is : [5, 3, 6, 21, 8, 10, 9]