如何在Python中实现类似Java的类型转换 (byte) (Integer.parseInt(byteArrayStr[i],16))?
在Java中,我是这样做的,但在Python中该怎么做呢?特别是这一行:bytesArray[i] = (byte) (Integer.parseInt(byteArrayStr[i],16));
public static byte[] toBytes(String bytes) throws IOException
{
String byteArrayStr[] = bytes.split("\\/");
byte bytesArray[] = new byte[byteArrayStr.length];
for (int i = 0; i < byteArrayStr.length; ++i)
{
bytesArray[i] = (byte) (Integer.parseInt(byteArrayStr[i],16));
}
return bytesArray;
}
2 个回答
1
只需要对你想要转换类型的值进行“调用”就可以了。
>>> stringlist = ['123', '245', '456']
>>> intlist = [int(e) for e in stringlist]
>>> intlist
[123, 245, 456]
如果这个值不适合你想要转换成的类型,可能会出现一个叫做VauleError的错误。
>>> int('hello')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'hello'
3
直接回答就是:int(x, 16)
。在Python中,你可以用一个简单的列表推导式来完成这个操作(我假设你的字符串看起来像是af/ce/13/...
)
l = [int(x, 16) for x in string.split('/')]