gpt4 book ai didi

python - 拉伸(stretch)列表以适应彼此的尺寸

转载 作者:行者123 更新时间:2023-11-30 22:11:11 30 4
gpt4 key购买 nike

假设我有 3 个大小不匹配的列表,[3, 7, 6]、[12, 67, 89, 98] 和 [1, 2, 3, 4, 5, 6, 7]我想要一个函数来执行此操作:

>>> stretch([3, 7, 6], [12, 67, 89, 2], [1, 2, 3, 4, 5, 6, 7])
[3, 3, 3, 7, 7, 6, 6], [12, 67, 67, 89, 89, 2, 2], [1, 2, 3, 4, 5, 6, 7]

所以,我想要的是将所有较小的列表拉伸(stretch)到最大列表的长度。如果有 2 个最大的相同大小的列表,则使它们保持相同的长度。我尝试使用一个函数,但它只能使用范围。我希望它能与一切一起工作。供引用:

import numpy

def zipstretch(*args):
range_tups = [(x[0], x[-1]) for x in args]
shifts = [x[0] for x in range_tups]
range_tups = [(x[0]-y, x[1]-y, n) for x, y in zip(range_tups, shifts)]
ranges = []
for x, s in zip(range_tups, shifts):
h = s
temp = list()
for y in range(max(range_tups, key=lambda z: len(z))[0], max(range_tups, key=lambda z: len(z))[1]):
temp.append(h)
h+=x[1]/max(range_tups, key=lambda z: len(z))[1]
ranges.append(numpy.array(temp))
return ranges

最佳答案

我想出了这个:

def stretch(*lists):
length = max([len(l) for l in lists])
return [[l[i * len(l) // length] for i in range(length)]
for l in lists]

它计算目标长度作为所有列表的最大值,然后根据它们的索引拉伸(stretch)列表,类似于实现简单的一维图像缩放的方式。

关于python - 拉伸(stretch)列表以适应彼此的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51507943/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com