gpt4 book ai didi

python - 拆分列表中的每个项目

转载 作者:太空宇宙 更新时间:2023-11-03 13:18:30 25 4
gpt4 key购买 nike

是否可以拆分列表中的项目并即时生成新列表?基本上我得到了一个 ushort 的列表,并想生成一个 ubytes 的列表:

input = [1036, 1055, 26, 29787, 9, 4206, 41, 7, 1036, 8302, 130, 4, 268, 4206]
out = [4, 12, 4, 31, 0, 26, 116, 91, 0, 9, 16, 110, 0, 41, 0, 7, 4, 12, 32, 110, 0, 130, 0, 4, 1, 12, 16, 110]

我可以很容易地生成一个元组列表,但是我怎样才能删除元组并将它们合并到一个大列表中呢?

out_temp = [(x>>8, x&0xFF) for x in input]

最佳答案

您可以这样使用列表推导式:

>>> in_ = [1036, 1055, 26, 29787, 9, 4206, 41, 7, 1036, 8302, 130, 4, 268, 4206]
>>> [y for x in in_ for y in (x >> 8, x & 0xff)]
[4, 12, 4, 31, 0, 26, 116, 91, 0, 9, 16, 110, 0, 41, 0, 7, 4, 12, 32, 110, 0, 130, 0, 4, 1, 12, 16, 110]

或使用 itertools.chain.from_iterable :

>>> import itertools
>>> list(itertools.chain.from_iterable((x >> 8, x & 0xff) for x in in_))
[4, 12, 4, 31, 0, 26, 116, 91, 0, 9, 16, 110, 0, 41, 0, 7, 4, 12, 32, 110, 0, 130, 0, 4, 1, 12, 16, 110]

顺便说一句,不要使用 input 作为变量名。它隐藏了内置函数 input .

关于python - 拆分列表中的每个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21907738/

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