📜  Python|列表中的间隔初始化

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

Python|列表中的间隔初始化

有许多方法可以用元素初始化列表,但有时需要以切片方式用数字初始化列表。这可以是自定义的,因此这方面的知识可以派上用场。让我们讨论一些可以做到这一点的方法。

方法 #1:使用list comprehension + enumerate()
列表推导可以完成可能的迭代部分,枚举可以帮助逻辑部分和检查列表中所需的有效元素。

# Python3 code to demonstrate 
# interval initializing in list 
# using list comprehension + enumerate()
  
# initializing lists
test_list = list(range(50))
  
# printing original list
print ("The original list is : " + str(test_list))
  
# interval elements
N = 5
  
# interval difference
K = 15
  
# using list comprehension + enumerate()
# interval initializing in list 
res =  [i for j, i in enumerate(test_list) if j % K < N ]
      
# printing result 
print ("The modified initialized list : " +  str(res))

输出 :

方法#2:使用itertools.compress() + itertools.cycle()
上述两个函数可以结合起来,以方便解决所讨论的问题。循环函数可以用于重复任务,而压缩函数在将片段组合在一起时可能是有益的。

# Python3 code to demonstrate 
# interval initializing in list 
# using itertools.compress() + itertools.cycle()
from itertools import compress, cycle 
  
# initializing lists
test_list = list(range(50))
  
# printing original list
print ("The original list is : " + str(test_list))
  
# interval elements
N = 5
  
# interval difference
K = 15
  
# using itertools.compress() + itertools.cycle()
# interval initializing in list 
func = cycle([True] * N + [False] * (K - N))
res = list(compress(test_list, func))
      
# printing result 
print ("The modified initialized list : " +  str(res))

输出 :