题目: “相邻元素对之和”
问题描述:
给定一个整数列表,你需要编写一个Python函数,该函数接收这个列表作为输入参数,返回一个新列表。新列表中的每个元素都应该是原列表中相邻两元素之和。如果原列表的长度为n,那么返回的新列表的长度应该为n-1。
例如,如果输入列表为 [1, 2, 3, 4, 5]
,那么返回的列表应为 [3, 5, 7, 9]
。
问题要求:
- 请提供一个完整的Python函数来解决这个问题。
- 确保你的函数可以处理空列表和只包含一个元素的列表。
- 请提供一些用例来测试你的函数。
解法:
import pytest
def border_element_sum(nums_list):
new_nums = []
if len(nums_list) == 0 or len(nums_list) == 1:
pass
else:
for i in range(len(nums_list)-1):
start, end = nums_list[i], nums_list[i+1]
new_nums.append(start+end)
return new_nums
def test_border_element_sum():
assert border_element_sum([1, 2, 3, 4, 5, 7]) == [3, 5, 7, 9, 12]
assert border_element_sum([]) == []
assert border_element_sum([1]) == []
assert border_element_sum([2, 5]) == [7]
output