将整数数组转换为unicode

时间:2019-04-18 01:33:30

标签: python python-3.x python-2.7

我有一个数组arr = [07,10,11,05]。 我实际上希望将这些值转换为十六进制并将其发送给函数。我知道我可以将值分别转换为十六进制,例如hex(arr [0]),hex(arr [1])等。我现在正在做的是将数组转换为 手动将unicode设置为arr = [u'07 0a 0b 05'],然后发送给对我有用的功能。但是当我必须像

一样在arr中发送数百个unicode字符串时,这太不切实际了。
arr = [u'a3 06 06 01 00 01 01 00',
u'a3 06 06 02 00 01 02 00',
u'a3 06 06 03 00 01 03 00',
u'a3 06 06 04 00 01 04 00',
u'a3 06 06 05 00 01 05 00',
u'a3 06 06 06 00 01 06 00',
u'a3 06 06 07 00 01 07 00']

我正在使用循环一一发送(arr [i])。有没有一种方法可以将整数数组动态转换为unicode并将其发送到易于接受此类unicode字符串的外部函数?

1 个答案:

答案 0 :(得分:0)

您正在寻找' '.join(map(hex,arr))吗?

更具体地说:

import numpy as np

a = np.array([[1,2,3],[6,11,23]])

def strip_hexstring(s):
    return s.strip('0x').strip('L')

def format_line(line):
    return u'{}'.format(' '.join(map(strip_hexstring,map(hex,line))))

arr = [format_line(a[i,:]) for i in range(a.shape[0])]

如有必要,可以像示例中那样用零填充。