2024-04-18 22:34:07 发布
网友
在线上有一些示例如何从较长数组中减去值,使其与较短数组(example)的长度相匹配。但是,较长数组中的值顺序会发生变化。有没有办法从较长数组的末尾减去值
这就是我想要实现的目标:
a = [1, 2, 3, 4, 5] b = [1, 5, 8, 2, 7, 3, 5, 9, 4, 10]
一些代码
输出:
a = [1, 2, 3, 4, 5] b = [1, 5, 8, 2, 7]
无论阵列的大小或顺序如何,这都应该有效:
a = [1, 2, 3, 4, 5] b = [1, 5, 8, 2, 7, 3, 5, 9, 4, 10] m = min(len(a), len(b)) a = a[:m] b = b[:m]
只需获取从索引0到len(a)-1的列表片段:
len(a)-1
b = b[:len(a)]
>>> a = [1, 2, 3, 4, 5] >>> b = [1, 5, 8, 2, 7, 3, 5, 9, 4, 10] >>> b = b[:len(a)] >>> b [1, 5, 8, 2, 7]
如果a大于b:
a
b
>>> a = [1, 5, 8, 2, 7, 3, 5, 9, 4, 10] >>> b = [1, 2, 3, 4, 5] >>> b = b[:len(a)] >>> b [1, 2, 3, 4, 5]
请注意,如果切片的结束索引大于列表的大小,则不会出现错误
因此,如果您不知道较短的数组是什么,只需在两个数组上执行切片:
b = b[:len(a)] a = a[:len(b)]
只有较大的一个会被“缩短”
将任意数量的列表剪成等长:
def even_length(*args): target_size = min(map(len, args)) return tuple(l[:target_size] for l in args)
用法:
a = [1, 2, 3, 4, 5] b = [1, 5, 8, 2, 7, 3, 5, 9, 4, 10] a, b = even_length(a, b) print(a, b)
当然,如果处理单个列表变得不方便,您也可以传递list或tuple个列表
list
tuple
lists = (a, b, c, d) lists = even_length(*lists)
无论阵列的大小或顺序如何,这都应该有效:
只需获取从索引0到
len(a)-1
的列表片段:输出:
如果
a
大于b
:请注意,如果切片的结束索引大于列表的大小,则不会出现错误
因此,如果您不知道较短的数组是什么,只需在两个数组上执行切片:
只有较大的一个会被“缩短”
将任意数量的列表剪成等长:
用法:
当然,如果处理单个列表变得不方便,您也可以传递
list
或tuple
个列表相关问题 更多 >
编程相关推荐