python代码 list内元素的计算

列表内后一个元素减去前一个元素比如[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)

输出效果;

img

 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。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7565613
  • 这篇博客也不错, 你可以看下python:list(列表)输出一组数中的每一个元素
  • 除此之外, 这篇博客: python容器——list列表的创建,访问,排序,列表元素的增加,删除,替换,成员资格的判断及其他中的 2 建新列表 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • >>> L=[30,10,20,40]
    >>> id(L)
    1786666684864
    >>> L=sorted(L)
    >>> L
    [10, 20, 30, 40]
    >>> id(L)
    1786666685184
    
  • 以下回答由chatgpt基于相关博客总结生成:

    可以用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]
    

    可以看到,程序正确地生成了新的列表。