我有两个元组列表如下。我想打印这个以'|'分隔的元组。如何实现这一点。
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
答案 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
。