2024-04-26 17:41:55 发布
网友
如何将此代码移到列表中
prev = 0 data = [1, 20, 40, 50, 100] newlist = [] for x in data: value = x - prev prev = x newlist.append(value)
@Keatinge的回答很好。这是另一个没有拷贝的版本。从技术上讲不是列表理解:*(...)用生成器中的项扩展列表文本。你知道吗
*(...)
[data[0], *(data[i + 1] - data[i] for i in range(len(data) - 1))]
与其使用prev变量,不如创建一个以0开头的新列表。你知道吗
prev
[x-prev for prev, x in zip([0]+data, data)]
不过,您可能不应该将它用于大型data,因为它会生成一个全新的副本。你可以用itertools.chain公司要加快速度:
data
[x - prev for prev, x in zip(chain([0], data), data)]
@Keatinge的回答很好。这是另一个没有拷贝的版本。从技术上讲不是列表理解:
*(...)
用生成器中的项扩展列表文本。你知道吗与其使用
prev
变量,不如创建一个以0开头的新列表。你知道吗不过,您可能不应该将它用于大型
data
,因为它会生成一个全新的副本。你可以用itertools.chain公司要加快速度:相关问题 更多 >
编程相关推荐