【问题标题】:How can I print data in multi dimensional array in Python如何在 Python 中打印多维数组中的数据
【发布时间】:2017-08-10 13:38:54
【问题描述】:

我使用的是 Python 2.7,并且我在此结构中有一个数据列表:

list = [(('a', 'b'), 'foo', (1, 2)), (('c', 'd'), 'bar', (3, 4)), (('e', 'f'), 'baz', (5, 6))]

如何打印才能得到这个输出:

(a, b) (c, d) (e, f)

我试过像这样打印它print list[0:][0]),但这会返回((a, b), 'foo', (1, 2))

然后我尝试像这样打印它 print list[0:][0][0]) 但这不起作用,因为它只返回 (a, b) 而其余的都不返回

我正在寻找一个简短有效的解决方案,因为我将在条件中使用这个元组来检查它们是否已经存在于列表中

提前致谢!

【问题讨论】:

  • 您的意思是要定义为:[((a, b), 'foo', (1, 2)), ((c, d), 'bar', (3, 4)),((e, f), 'baz', (5, 6))] 的列表吗?否则,可能很难做你想做的事。最后一个元素是((e, f), 'baz', (5, 6))
  • @busybear 是的,它缺少括号,抱歉!

标签: python arrays python-2.7 multidimensional-array


【解决方案1】:

所以你的列表看起来像(用字符串替换未定义的符号):

In [135]: alist = [(('a', 'b'), 'foo', (1, 2)), (('c', 'd'), 'bar', (3, 4)), (('e', 'f', 'baz', (5, 6)))]

正常列表显示

In [136]: alist
Out[136]: 
[(('a', 'b'), 'foo', (1, 2)),
 (('c', 'd'), 'bar', (3, 4)),
 ('e', 'f', 'baz', (5, 6))]

我可以遍历列表并收集每个元组的第一个元素:

In [137]: [x[0] for x in alist]
Out[137]: [('a', 'b'), ('c', 'd'), 'e']

关闭,除了最后一个元组不同。这是故意的,还是您只是错过了一对 ()?

我可以定义一个小函数来为不带 () 的元组格式化字符串。它还可以区分三元元组和四元元组。

def pfoo1(atuple):
    if len(atuple)==3:
        return '(%s, %s)'%atuple[0]
    else:
        return '(%s, %s)'%(atuple[:2])

In [159]: for x in alist:
     ...:     print(pfoo1(x))
     ...:     
(a, b)
(c, d)
(e, f)
In [161]: [pfoo1(x) for x in alist]
Out[161]: ['(a, b)', '(c, d)', '(e, f)']
In [162]: print('\n'.join(_))
(a, b)
(c, d)
(e, f)

所以基本上它只是一个迭代列表的问题,从每个元组中提取正确的元素,并将它们格式化为一个显示字符串。

【讨论】:

  • 是的,这是一个缺少的括号,感谢您的通知!
  • 非常感谢!您的第一个解决方案按我的预期工作!
猜你喜欢
  • 2016-11-27
  • 2020-05-30
  • 2020-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-24
  • 2014-04-13
相关资源
最近更新 更多