列表内后一个元素减去前一个元素比如[6 9 4 9 2 9],再把他们的差组成一个新的列表变成[3 -5 5 -7 9]
nums = [6, 9, 4, 9, 2, 9]
diff = []
for i in range(1, len(nums)):
diff.append(nums[i] - nums[i-1])
print(diff)
original_list = [6, 9, 4, 9, 2, 9]
new_list = [original_list[i] - original_list[i-1] for i in range(1, len(original_list))]
您好,可以使用列表解析来实现这个功能。以下是我写的一个实现:
numbers = [6, 9, 4, 9, 2, 9]
differences = [numbers[i+1] - numbers[i] for i in range(len(numbers)-1)]
print(differences)
输出效果;
lst = [6, 9, 4, 9, 2, 9]
new_lst = [lst[i+1]-lst[i] for i in range(len(lst)-1)]
print(new_lst) # [3, -5, 5, -7, 7]
lst[i+1]-lst[i] 表示后一个元素减去前一个元素的差;
range(len(lst)-1) 表示遍历列表中除最后一个元素外的所有元素;
[lst[i+1]-lst[i] for i in range(len(lst)-1)] 表示将所有差值组成一个新的列表。
需要注意的是,最后一个元素没有后一个元素,因此无法计算差值,所以新列表的长度比原列表少1。
>>> L=[30,10,20,40]
>>> id(L)
1786666684864
>>> L=sorted(L)
>>> L
[10, 20, 30, 40]
>>> id(L)
1786666685184
可以用Python编写一个函数,该函数接收一个列表作为参数,然后将该列表转换成一个新的列表,新列表中每个元素都是原始列表中相邻元素的差值。
例如,给定列表[6, 9, 4, 9, 2, 9],程序应该输出[3, -5, 5, -7, 7]。
代码实现如下:
def generate_diff_list(lst):
diff_lst = []
for i in range(1, len(lst)):
diff_lst.append(lst[i] - lst[i-1])
return diff_lst
执行该函数:
>>> generate_diff_list([6, 9, 4, 9, 2, 9])
[3, -5, 5, -7, 7]
可以看到,程序正确地生成了新的列表。