编程自学网编程自学网编程自学网

如何在Python中将字符映射到整数范围[-128,127]?

我想转换一个字符列表(用单个字节表示,即范围[0,255]),用[-128,127]范围内的整数表示。我已经读过Python的模运算符(%)总是返回一个与分母具有相同符号的数字。

在Python中进行此转换的正确方法是什么?

编辑使用ord映射到[128,255]的字符应重新映射到[-128,-1],128映射到-128,255映射到-1。 (对于转换的逆转,我使用chr(my_int%256),但my_int可以是负数。)


解决方案:


我发现我可以使用unpack模块使用“byteing from struct”进行此转换:

# gotcha|pitfall: my original idea, but this generates a list of 1-tuples:# x = [struct.unpack("b",a) for a in charlist]fmt = "%ib"%len(charlist) # eg. "5b", if charlist's length is 5x = struct.unpack(fmt,charlist) # tuple of ints

不确定我是否明白这个问题......你想做那样的事吗?

[i - 255 if i > 127 else i for i in [ord(l) for l in "azertyuiopqsdféhjklm3{"]]


未经允许不得转载:编程自学网 » 如何在Python中将字符映射到整数范围[-128,127]?