格式化列表输出

时间:2014-03-26 20:09:28

标签: python regex list format

我有一个列表,其条目类似于以下内容:

[('sw1', 'sw2'), ('sw1', 'sw3'), ('sw1', 'sw4'), ('sw2', 'sw3'), ('sw2', 'sw4'), ('sw3', 'sw4')]

我想将元组转换为字符串并将它们打印在各行上,以便将它们作为参数传递给另一个程序:

(sw1 , sw2)\n
(sw1 , sw3)\n
(sw1 , sw4)\n
(sw2 , sw3)\n
(sw2 , sw4)\n
(sw3 , sw4)\n

我尝试了strip()split(),但这些似乎不支持元组。我假设我需要一些正则表达式来完成我正在尝试做的事情,但即便如此,我也不确定要处理,的潜在字段分隔符在...之内和之间的事实。元组。任何指针都非常感谢。我老了,只是想学习编程。

3 个答案:

答案 0 :(得分:2)

>>>li = [('sw1', 'sw2'), ('sw1', 'sw3'), ('sw1', 'sw4'), ('sw2', 'sw3'), ('sw2', 'sw4'), ('sw3', 'sw4')]

>>> print "\n".join([str(item) for item in li])
('sw1', 'sw2')
('sw1', 'sw3')
('sw1', 'sw4')
('sw2', 'sw3')
('sw2', 'sw4')
('sw3', 'sw4')

另一种方式

>>> print "\n".join(["%s" %(item,) for item in li])
('sw1', 'sw2')
('sw1', 'sw3')
('sw1', 'sw4')
('sw2', 'sw3')
('sw2', 'sw4')
('sw3', 'sw4')

答案 1 :(得分:1)

您可以按如下方式使用字符串格式:

a = [('sw1', 'sw2'), ('sw1', 'sw3'), ('sw1', 'sw4'), ('sw2', 'sw3'), ('sw2', 'sw4'), ('sw3', 'sw4')]

for i in a:
    print('({:}, {:})'.format(*i))

# (sw1, sw2)
# (sw1, sw3)
# (sw1, sw4)
# (sw2, sw3)
# (sw2, sw4)
# (sw3, sw4)

这不会改变你的元组本身,但会根据你的意愿格式化它们的打印。代码只是遍历您的列表并打印具有给定格式的元组。字符串format方法已涵盖here

答案 2 :(得分:0)

你可以显式地将元组转换为字符串(这完全按照你的意愿工作) - 最后将它们与分隔符一起连接到你想要的输出中的元组之间:

>>> lst_tups = [('sw1', 'sw2'), ('sw1', 'sw3'), ('sw1', 'sw4'), ('sw2', 'sw3'), ('sw2', 'sw4'), ('sw3', 'sw4')]
>>> my_string = '\n '.join([str(t) for t in lst_tups])
>>> my_string
"('sw1', 'sw2')\n ('sw1', 'sw3')\n ('sw1', 'sw4')\n ('sw2', 'sw3')\n ('sw2', 'sw4')\n ('sw3', 'sw4')"

然后您可以轻松输出如下;只需将其打印出来:

>>> print(my_string)
('sw1', 'sw2')
 ('sw1', 'sw3')
 ('sw1', 'sw4')
 ('sw2', 'sw3')
 ('sw2', 'sw4')
 ('sw3', 'sw4')