如果我有一個列表,如下列:非常基本的格式問題
[(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'
這是你要找的嗎?
data = [(10, 20), (50, 60), (100, 110)]
for x in data:
print x[0], "-", x[1]
是的,東西很接近。不過,我想將其添加到我已有的字符串中。那麼,如果我有字符串+ ????,我該怎麼辦? – 2012-04-28 01:47:05
我不確定你的程序是如何構建的,而不是打印,你可以將結果追加到你現有的字符串中?或者如果你稍後在你的程序中合併,你可以用打印的數據創建一個列表,然後在 – Lostsoul 2012-04-28 01:48:27
另一個(有點更具可讀性)的方式來做到這一點格式化爲使用
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)
謝謝喬爾,你可以看看這裏看到我之前說的:http:// stackoverflow。 com/questions/10359993 /將某個字符串放在某個位置 – 2012-04-28 02:07:54
^^我無法得到這個工作,我認爲你可以做一個簡單的修復 – 2012-04-28 02:31:53
@PatrickCampbell:它對我來說工作得很好。具體來說,你不能去工作嗎? – 2012-04-28 02:35:19
而修真內遍歷它可以解開列表的值:
>>> x = [(10, 20), (50, 60), (100, 110)]
>>> ','.join('%d-%d' % (y,z) for (y,z) in x)
'10-20,50-60,100-110'
上附加它。我可以這樣做'string'+'|'+(','。join(' - '。join map(str,t))for t in x))並得到字符串| 10-20,50-60,100-110 ?? – 2012-04-28 01:50:42
@PatrickCampbell,是的,你也可以做'string'%s'%','。join(' - '。join(map(str,t))for t in x)'以避免字符串連接。 – huon 2012-04-28 01:52:38
你能幫我解答一下類似的問題嗎?! http://stackoverflow.com/questions/10359993/going-to-a-certain-position-in-a-string – 2012-04-28 02:34:52