如果我有以下列表:
[(10, 20), (50, 60), (100, 110)]
我怎么能看起来像这样:
'10-20,50-60,100-110'
如果我的列表中的对数是可变的吗?
我很抱歉这么简单的问题。但是我尝试过的所有事情,例如用' - '替换','都失败了。有什么想法吗?
答案 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'