📌  相关文章
📜  Python|对列表的每个第 K 个元素进行操作

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

Python|对列表的每个第 K 个元素进行操作

我们通常希望对列表中的所有元素使用特定的函数。但有时,根据要求,我们希望对列表的某些元素使用特定的功能,基本上是对列表中的每个第 K 个元素。让我们讨论可以执行此操作的某些方式。

方法 #1:使用列表理解 + enumerate()
获取每个第 K 个列表的功能可以在列表理解的帮助下完成,枚举函数有助于整个列表的迭代。

# Python3 code to demonstrate
# Edit every Kth element in list 
# using list comprehension + enumerate()
  
# initializing list 
test_list = [1, 4, 5, 6, 7, 8, 9, 12]
  
# printing the original list
print ("The original list is : " + str(test_list))
  
# using list comprehension + enumerate()
# Edit every Kth element in list 
# add 2 to every 3rd element
res = [i + 2 if j % 3 == 0 else i 
       for j, i in enumerate(test_list)]
  
# printing result
print ("The list after editing every kth element : " + str(res))
输出:
The original list is : [1, 4, 5, 6, 7, 8, 9, 12]
The list after editing every kth element : [3, 4, 5, 8, 7, 8, 11, 12]


方法#2:使用列表理解+列表切片
上述功能可以帮助执行这些任务。列表推导式完成列表中的迭代任务,列表切片完成每个 Kth 元素的提取。

# Python3 code to demonstrate
# Edit every Kth element in list 
# using list comprehension + list slicing 
  
# initializing list 
test_list = [1, 4, 5, 6, 7, 8, 9, 12]
  
# printing the original list
print ("The original list is : " + str(test_list))
  
# using list comprehension + list slicing
# Edit every Kth element in list 
# add 2 to every 3rd element
test_list[0::3] = [i + 2 for i in test_list[0 :: 3]]
  
# printing result
print ("The list after editing every kth element : "
                                   + str(test_list))
输出:
The original list is : [1, 4, 5, 6, 7, 8, 9, 12]
The list after editing every kth element : [3, 4, 5, 8, 7, 8, 11, 12]