gpt4 book ai didi

python - 将列表的一些索引转换为十六进制

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

我有一个整数列表 arr,有五个元素/索引,范围从 arr[0] 到 arr[4]

最后三个元素是客户编号,范围从 01 到 250,000。我需要的是将它们转换为十六进制,使数组看起来像这样:

对于客户 1,arr = [00,00,01,00,00] - cust num 是最后三个字节

对于客户 2,arr = [00,00,02,00,00] - cust num 是最后三个字节

对于 250,000 名客户,arr = [00,00,90,d0,03] - cust num 是最后三个字节,十六进制的 250,000 = 3D090

我知道我可以使用 hex() 函数将索引单独转换为十六进制,或者可以将整个数组转换为十六进制,但如何将值转换为十六进制并将其放置在上述格式的最后三个字节中?

最佳答案

这会起作用:

i = 250000

constant = ['00', '00']

result = [constant + [first + second
for first, second in zip(string[::2], string[1::2])][::-1]
for string in (f'{i:X}'.zfill(6) for i in range(1, 250001))]
print(result[0])
print(result[-1])

对于 Python <= 3.5:

i = 250000

constant = ['00', '00']

result = [constant + [first + second
for first, second in zip(string[::2], string[1::2])][::-1]
for string in ('{:X}'.format(i).zfill(6) for i in range(1, 250001))]
print(result[0])
print(result[-1])

输出:

['00', '00', '01', '00', '00']
['00', '00', '90', 'D0', '03']

说明:

首先,我们认识到可以使用字符串格式将每个数字转换为字符串,然后根据需要使用 0 将其填充到长度 6。

接下来,我们将字符串分成两个字符的 block 并反转它,以便它具有所需的表示形式。

最后,我们向每个内部列表添加两个'00'字符串。

关于python - 将列表的一些索引转换为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55760326/

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