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]