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

在python中,有没有一种更简单的方法可以在特定的基中显示数字数组?

  •  0
  • Adrian  · 技术社区  · 4 年前

    print( str(
        [ '{:02x}'.format(array[i])
          for i in range(0, len(array))
        ]
    ).replace("'", "") ) )
    

    def numbers_as_base(array, base, digits, leading_zeros):
      s = '['
      if len(array) > 0:
        fmt = f'{{:{0 if leading_zeros else ""}{digits}{base}}}'
        for i in range(0, len(array)-1):
          s += fmt.format(array[i]) + ', '
        s += fmt.format(array[-1])
      return s + ']'
    

    我只是想知道,在语言/标准库中是否有一些东西可以为我做到这一点?还有,有没有更有效的方法?

    1 回复  |  直到 4 年前
        1
  •  2
  •   Alex Hall    4 年前

    你需要的主要是 .join :

    array = [31, 14, 41, 15, 59]
    
    print("[" + ", ".join([
        '{:02x}'.format(x)
        for x in array])
    + "]")
    

    输出:

    [1f, 0e, 29, 0f, 3b]
    

    您也可以省略 [] 生成器表达式 :

    print("[" + ", ".join(
        '{:02x}'.format(x)
        for x in array)
    + "]")