Как сделать Java как приведение типов (байт) (Integer.parseInt (byteArrayStr [i], 16)) в Python? - PullRequest
0 голосов
/ 03 декабря 2011

В 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 ]

4 голосов
/ 03 декабря 2011

Чтобы ответить прямо: int(x, 16).То, что вы делаете в Python - это понимание единого списка (я предполагаю, что строка выглядит как af/ce/13/...)

l = [int(x, 16) for x in string.split('/')]
2 голосов
/ 03 декабря 2011

Просто "вызовите" тип значения, которое вы хотите привести.

>>> 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...