【问题标题】:Python format() combined with join and data conversionpython format()结合join和数据转换
【发布时间】:2019-09-28 13:10:25
【问题描述】:

这段 Python 代码正是我想要的:

a_hex_str = ':'.join('%02x' % b for b in a_bytes)

这是字节数组a_bytes中字节值的字符串,以十六进制打印,每个值之间有一个冒号。

我一直在疯狂地尝试使用新的 format() 函数代替旧的 % 来获得相同的输出,但我所有的尝试都会出错。

非常感谢您的帮助。

【问题讨论】:

    标签: python-3.x join format


    【解决方案1】:
    a_hex_str = ':'.join('{}02x'.format(b) for b in a_bytes)
    

    试试这条线,希望它会起作用。

    【讨论】:

    • 不,它没有。它以十进制打印字节并在每个字节后面加上 02x。我想以十六进制打印字节。
    【解决方案2】:
    a_hex_str = ':'.join('{:02x}'.format(b) for b in a_bytes)
    

    我改编了答案 https://stackoverflow.com/questions/5661725/format-ints-into-string-of-hex

    我没有意识到我需要花括号内的冒号,否则它会给出超出范围的错误。

    【讨论】:

      猜你喜欢
      • 2014-02-04
      • 1970-01-01
      • 2020-02-08
      • 2016-04-03
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多