如果我有如下列表:
[(10, 20), (50, 60), (100, 110)]
我怎么能让这个看起来像这样:
'10-20,50-60,100-110'
如果我列表中的对数是可变的?
我很抱歉这么简单的问题。但是我尝试过的每一件事,比如用“-”替换“,”都失败了。有任何想法吗?
如果我有如下列表:
[(10, 20), (50, 60), (100, 110)]
我怎么能让这个看起来像这样:
'10-20,50-60,100-110'
如果我列表中的对数是可变的?
我很抱歉这么简单的问题。但是我尝试过的每一件事,比如用“-”替换“,”都失败了。有任何想法吗?
>>> x = [(10, 20), (50, 60), (100, 110)]
>>> ','.join('-'.join(map(str, t)) for t in x)
'10-20,50-60,100-110'
进行这种格式化的另一种(更具可读性)方法是使用
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)pythonstring.format
方法:
fmt = ",".join("{0}-{1}".format(*i) for i in data)
这是你要找的吗?
data = [(10, 20), (50, 60), (100, 110)]
for x in data:
print x[0], "-", x[1]
您可以在理解内迭代列表时解压列表的值:
>>> x = [(10, 20), (50, 60), (100, 110)]
>>> ','.join('%d-%d' % (y,z) for (y,z) in x)
'10-20,50-60,100-110'