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

在Python中使用if语句打印二维数组

  •  -3
  • Wizard  · 技术社区  · 6 年前

    我已经查看了其他与此相关的帖子。然而,它们似乎都使用列表理解,因此不允许检查2d数组的每个单独元素。

    我想打印一个2d数组,其中包含一些字符串和一些int。因为我正在使用 {:o} ,我希望在打印之前能够检查数组的元素是int还是string。打印字符串后 {:o} 引发错误。

    # Desired outcome:
    [['s', 9], [0, 1]]
    
    's' 11
     0   1
    

    如果能帮上忙,我将不胜感激,因为我不知道该怎么做。

    1 回复  |  直到 6 年前
        1
  •  2
  •   TwistedSim    6 年前

    这将根据他的类型将正确的格式映射到列表中的值( str int )。

    values = [['s', 9], [0, 1]]
    
    for pair in values:
        print(*map(lambda value: ('{:o}' if isinstance(value, int) else '{}').format(value), pair))
    

    输出:

    s 11
    0 1
    

    如果需要,可以添加勾号 "'{}'" 而不是 '{}'