代码之家  ›  专栏  ›  技术社区  ›  mikewaters

整数列表到字符串(字节数组)-python

  •  37
  • mikewaters  · 技术社区  · 14 年前

    这是可行的(假设一个8字节的键):

    key = struct.pack('BBBBBBBB', 17, 24, 121, 1, 12, 222, 34, 76)
    

    但是,我不希望对key length和unpack()参数列表进行硬编码。

    给定一个整数的初始列表,我如何正确地实现这一点?

    7 回复  |  直到 5 年前
        1
  •  52
  •   Alex Martelli    14 年前

    array 模块到 struct 同种类的 值):

    >>> import array
    >>> array.array('B', [17, 24, 121, 1, 12, 222, 34, 76]).tostring()
    '\x11\x18y\x01\x0c\xde"L'
    

    len 调用,无需字符串操作,等等--快速、简单、直接,为什么要选择其他方法?!

        2
  •  58
  •   Scott Griffiths    14 年前

    bytearray

    >>> str(bytearray([17, 24, 121, 1, 12, 222, 34, 76]))
    '\x11\x18y\x01\x0c\xde"L'
    

    对我来说,这比Alex Martelli的回答更直接-仍然没有字符串操作或 len 打电话来,现在你甚至不需要导入任何东西!

        3
  •  48
  •   Pi Delport    5 年前

    bytes 直接:

    >>> bytes([17, 24, 121, 1, 12, 222, 34, 76])
    b'\x11\x18y\x01\x0c\xde"L'
    
        4
  •  11
  •   user395760 user395760    14 年前
    struct.pack('B' * len(integers), *integers)
    

    *sequence f(..., *args ,...) args = sequence ".

        5
  •  7
  •   Katriel    14 年前
    key = "".join( chr( val ) for val in myList )
    
        6
  •  1
  •   Xantium    7 年前

    map() 函数(适用于python 2.7):

    "".join(map(chr, myList))