📜  Python|列表中的交替骑行

📅  最后修改于: 2022-05-13 01:55:07.700000             🧑  作者: Mango

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]