Python|尾部切片列表求和
我们经常遇到需要通过截断列表的最后一个元素并执行剩余列表求和来减小列表大小的情况。当我们需要优化内存时,就会出现这个特殊问题。当有时我们需要获取所有相似大小的列表时,这在日常编程中有它的应用。让我们讨论可以执行此任务的某些方式。
方法 #1:使用 len() + 列表切片 + sum()
列表切片可以执行这个特定的任务,我们只需将第一个 len(list) – K 个元素切片到列表中,从而删除最后的 K 个元素。执行尾求和的任务是使用 sum() 执行的。
Python3
# Python code to demonstrate
# Tail Sliced List Summation
# using len() + list slicing + sum()
# initializing list
test_list = [1, 4, 6, 3, 5, 8]
# printing original list
print ("The original list is : " + str(test_list))
# initializing K
K = 3
# using len() + list slicing + sum()
# Tail Sliced List Summation
res = sum(test_list[: len(test_list) - K])
# printing result
print ("The tail removed list summation : " + str(res))
Python3
# Python code to demonstrate
# Tail Sliced List Summation
# using negative list slicing + sum()
# initializing list
test_list = [1, 4, 6, 3, 5, 8]
# printing original list
print ("The original list is : " + str(test_list))
# initializing K
K = 3
# using negative list slicing + sum()
# Tail Sliced List Summation
res = sum(test_list[: -K or None])
# printing result
print ("The tail removed list summation : " + str(res))
输出 :
The original list is : [1, 4, 6, 3, 5, 8]
The tail removed list summation : 11
方法 #2:使用负列表切片 + sum()
我们可以使用否定列表切片来执行这个特定的任务,我们开始从列表的最后一个索引中删除元素,从而从最后一个索引中删除所有 K 个元素。如果要求删除 0 个元素,我们将删除 None。执行尾求和的任务是使用 sum() 执行的。
Python3
# Python code to demonstrate
# Tail Sliced List Summation
# using negative list slicing + sum()
# initializing list
test_list = [1, 4, 6, 3, 5, 8]
# printing original list
print ("The original list is : " + str(test_list))
# initializing K
K = 3
# using negative list slicing + sum()
# Tail Sliced List Summation
res = sum(test_list[: -K or None])
# printing result
print ("The tail removed list summation : " + str(res))
输出 :
The original list is : [1, 4, 6, 3, 5, 8]
The tail removed list summation : 11