十六进制字符串到python2/3中的int的列表或数组,而不测试python版本和不使用循环

2024-10-01 04:45:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在python2/3中将十六进制字符串转换为list或int数组,而不测试python版本或循环:

s='c951ede6'

expectedResult = '[201, 81, 237, 230]'

expectedResult可以是数组或列表

我怎么能做到呢?在


Tags: 字符串版本列表数组中将listintpython2
3条回答
result = [int(s[i:i+2], 16) for i in range(0, len(s), 2)] 

没有一个真正的方法可以做到“没有循环”。您可以将循环推送到本机代码,但它们并不是“在Python中”。在

@Ajax1234

首先让我感谢您的unhexlify部分,因为我确实需要它。 第二,我想出了一种方法,让它可以移植到python2和python2和3上。 以下是整个代码:

import binascii

import numpy as np

s='c951ede6'

new_s = binascii.unhexlify(s)

expectedResult = np.fromstring( new_s, dtype=np.uint8 )

您可以使用binascii

import binascii

s='c951ede6'

new_s = binascii.unhexlify(s)
#for python 3:
expectedResult = list(new_s)

#for Python2:
expectedResult = map(ord, mew_s)

输出:

^{pr2}$

相关问题 更多 >