gpt4 book ai didi

python - 如何从右侧Python中拆分n个字符的数组?

转载 作者:行者123 更新时间:2023-12-01 01:58:36 25 4
gpt4 key购买 nike

我有一个包含 m 个字符的二进制数组,我想使用 python 将其从右侧分成 n 个字符的 block 。

最佳答案

假设您有一个数组 arr = [1,2,3,4,5,6]m=3

如果你可以把它分成可分割的 block ,那么:

back_m_iter = zip(*([iter(reversed(arr))]*m))

为您提供一个由后面的 m 个元素分组的数组。

如果您想要列表,只需:

back_m_list = list(back_m_iter)

output: [(6,5,4),(3,2,1)]

如果您想用 None 填充不可整除数组的空位(假设 arr 扩展了 1):

from itertools import zip_longest
back_m_iter = zip_longest(*([iter(reversed(arr))]*m), fillvalue=None)

output: [(7,6,5),(4,3,2),(1,None,None)]

如果您希望其余部分均为 0,则可以将 None 替换为 0。

编辑:刚刚看到您的评论,这是一个修订(误解了您的问题):

back_m_list = [x[::-1] for x in back_m_iter]

output: [(4,5,6),(1,2,3)]

您还可以这样做:

back_m_iter = reversed(list(zip(*([iter(arr)]*m))))

output: [(4,5,6),(1,2,3)]

关于python - 如何从右侧Python中拆分n个字符的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49910606/

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