非常基本的格式问题

时间:2012-04-28 01:43:25

标签: python formatting

如果我有以下列表:

[(10, 20), (50, 60), (100, 110)]

我怎么能看起来像这样:

'10-20,50-60,100-110'

如果我的列表中的对数是可变的吗?

我很抱歉这么简单的问题。但是我尝试过的所有事情,例如用' - '替换','都失败了。有什么想法吗?

4 个答案:

答案 0 :(得分:5)

>>> x = [(10, 20), (50, 60), (100, 110)]
>>> ','.join('-'.join(map(str, t)) for t in x)
'10-20,50-60,100-110'

答案 1 :(得分:2)

进行此格式化的另一种(稍微更具可读性)方法是使用

A)%样式字符串格式:

data = [(10, 20), (50, 60), (100, 110)]

fmt = "%d-%d, %d-%d, %d-%d" % (data[0][0], data[0][1], data[1][0], data[1][1],...)

或者,列表理解:

fmt = ",".join("%d-%d" % i for i in data)

B)python string.format方法:

fmt = ",".join("{0}-{1}".format(*i) for i in data)

答案 2 :(得分:1)

这是你想要的吗?

data = [(10, 20), (50, 60), (100, 110)]
for x in data:
    print x[0], "-", x[1]

答案 3 :(得分:0)

您可以在理解中迭代列表的值时解压缩列表的值:

>>> x = [(10, 20), (50, 60), (100, 110)]
>>> ','.join('%d-%d' % (y,z) for (y,z) in x)
'10-20,50-60,100-110'