2016-07-27 33 views
1

我在Python中有兩個列表。如何在Python中打印無逗號的元組列表?

a = [1, 2, 4, 8, 16] 
b = [0, 1, 2, 3, 4] 

和第三列表c即是其中的zip

c = zip(a, b) 

或者只是我有這樣的元組的列表:

c = [(1, 0), (2, 1), (4, 2), (8, 3), (16, 4)] 

我想打印的清單c沒有括號後的逗號。有沒有辦法在Python中做到這一點?

我想打印的清單c這樣的:

[(1, 0) (2, 1) (4, 2) (8, 3) (16, 4)] 
+0

只是好奇你爲什麼要這樣做? –

+1

因爲我在LaTeX中使用'tikz'來繪製圖表。我得到的輸出是用Python生成的,即元組列表。如果我通常打印它們是'print(list)',那麼我將不得不刪除所有逗號來寫'tikz'中的打印列表,因爲'tikz'不接受像這樣的一組點'(0,0),( 1,1)'。當名單很長時,我不想逐一刪除逗號。 – Jika

回答

3
print('[%s]' % ' '.join(map(str, c))) 

打印:

[(1, 0) (2, 1) (4, 2) (8, 3) (16, 4)] 

您的輸入。

基本上可以利用這個事實,即使用元組的自然字符串表示形式,並且只需要連接一個空格。

0

將最終結果創建爲字符串是否可行?

c_no_comma = '' 
for element in c: 
    c_no_comma += str(element) + ' ' 

c_no_comma = '[ ' + c_no_comma + ']' 
+0

這會爲列表中的每個元素創建2個新的字符串對象,然後在最後添加2個新的字符串對象,以及您開始使用的對象。非常低效。 –

3
print('[' + ' '.join([str(tup) for tup in c]) + ']') 

使用列表中理解創建以字符串形式的元組的列表。然後加入它們並添加方括號以使其看起來像你想要的那樣。

+0

代碼格式化的4個前導空格:) –

相關問題