📜  Python – 将 K 乘以每 N 个元素

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

Python – 将 K 乘以每 N 个元素

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

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

# Python3 code to demonstrate
# Multiply K to every Nth element
# 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))
  
# initializing N
N = 3
  
# initializing K 
K = 2
  
# using list comprehension + enumerate()
# Multiply K to every Nth element
res = [i * K if j % N == 0 else i for j, i in enumerate(test_list)]
  
# printing result
print ("The list after multiplying K to every Nth element : " + str(res))
输出 :
The original list is : [1, 4, 5, 6, 7, 8, 9, 12]
The list after multiplying K to every Nth element : [2, 4, 5, 12, 7, 8, 18, 12]

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

# Python3 code to demonstrate
# Multiply K to every Nth element
# 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))
  
# initializing N
N = 3
  
# initializing K 
K = 2
  
# using list comprehension + list slicing
# Multiply K to every Nth element
test_list[0::3] = [i * K for i in test_list[0 :: N]]
  
# printing result
print ("The list after multiplying K to every Nth element : " 
                                            + str(test_list))
输出 :
The original list is : [1, 4, 5, 6, 7, 8, 9, 12]
The list after multiplying K to every Nth element : [2, 4, 5, 12, 7, 8, 18, 12]