代码之家  ›  专栏  ›  技术社区  ›  Leif Andersen

:用于在python 3.1中显示多维数组中的所有元素

  •  2
  • Leif Andersen  · 技术社区  · 16 年前

    我在python中有一个多维数组,比如:

    arr = [['foo', 1], ['bar',2]]
    

    现在,如果我想打印出数组中的所有内容,我可以执行以下操作:

    print(arr[:][:])
    

    或者我也可以做打印(arr)。但是,如果我只想打印出每个框的第一个元素(对于arr,它将是“foo”,“bar”),我会想象我会做如下操作:

    打印(arr[:][0])

    不过,这只会打印出第一个数据博客(['foo',1]),我还尝试了反转它(以防万一):

    打印(arr[0][:])

    我也得到了同样的东西。那么,是否可以让它打印每个元组中的第一个元素(除了:

    for tuple in arr:
        print(tuple[0])
    

    )?谢谢。

    3 回复  |  直到 15 年前
        1
  •  2
  •   kennytm    16 年前

    您可以转置数组,例如

    >>> list(zip(*arr))[0]
    ('foo', 'bar')
    
        2
  •  2
  •   Burak Bağdatlı    15 年前

    zip()将比原始解决方案慢一点。如果您不喜欢您的原始解决方案,因为它需要多行代码,您可以始终这样做:

    [i[0] for i in arr]
    

    zip()内部有一个for循环,因此不能比使用zip()的for循环更快。

        3
  •  0
  •   job    15 年前

    我认为对于Python如何解析索引可能存在误解。你可以用大头钉钉 [:] 只要你愿意,你就可以拿到同样的东西。

    >>> arr = [['foo', 1], ['bar',2]]
    >>> print arr[:][:][:][:]
    [['foo', 1], ['bar', 2]]
    

    第二 [] 当返回实际的列表类对象时,仅索引到第二维度。听起来你需要类似matlab的语法 arr[:,0] 你需要用一些像麻木的东西。