元组项目打印格式

时间:2015-10-27 05:59:06

标签: python list tuples

我有两个元组列表如下。我想打印这个以'|'分隔的元组。如何实现这一点。

listoftuple =[(1,2),(3,4),(5,6)]
listoftuple1 =[(3,4,5),(5,6,7),(9,0,9)]

我希望打印结果如下:

1|2 3|4 5|6
3|4|5 5|6|7,9|0|9

5 个答案:

答案 0 :(得分:5)

>>> " ".join(map(lambda x: "|".join(map(str, x)), listoftuple1))
'3|4|5 5|6|7 9|0|9'

答案 1 :(得分:2)

使用for loop, map and join

简化

<强>代码:

listoftuple = [(1, 2), (3, 4), (5, 6)]
listoftuple1 = [(3, 4, 5), (5, 6, 7), (9, 0, 9)]

for lst1 in listoftuple:
    print "|".join(map(str, list(lst1))),

print ""

for lst2 in listoftuple1:
    print "|".join(map(str, list(lst2))),

<强>输出:

1|2 3|4 5|6 
3|4|5 5|6|7 9|0|9

现在让它变得有点复杂,不太可读

<强>代码2:

print " ".join("|".join(map(str, list(lst2))) for lst2 in listoftuple1)
print " ".join("|".join(map(str, list(lst1))) for lst1 in listoftuple)

答案 2 :(得分:2)

其他答案非常好。 可替换地:

' '.join(["|".join(str(k) for k in j) for j in listoftuple1])

答案 3 :(得分:1)

这是一个Python3答案(如果使用from __future__ import print_function,则为python2)

>>> class my_tup(tuple):
...     def __repr__(self):
...         return "|".join(repr(x) for x in self)
... 
>>> lot =[(1,2),(3,4),(5,6)]
>>> print(*map(my_tup, lot))
1|2 3|4 5|6
>>> lot =[(3,4,5),(5,6,7),(9,0,9)]
>>> print(*map(my_tup, lot))
3|4|5 5|6|7 9|0|9

如果你对一行以上的代码有异议,就像其中的一些代码显然那样:)

print(*("|".join(repr(x) for x in y) for y in lot))

答案 4 :(得分:1)

您可以将每个tuple个元素映射到str然后加入它们,然后使用自定义分隔符将生成器解包为print()调用:

>>> listoftuple = [(1,2),(3,4),(5,6)]
>>> print(*('|'.join(map(str, t)) for t in listoftuple), sep=' ')
1|2 3|4 5|6
>>> print(*('|'.join(map(str, t)) for t in listoftuple1), sep=' ')
3|4|5 5|6|7 9|0|9

如果你使用的是Python 2而不是3,那么你需要from __future__ import print_function