2016-12-03 65 views
1

我試圖例如這個名單轉換整數列表轉換爲字符串只有一個逗號在Python

F=[6, 9, 4, 3, 6, 8] 

轉換爲字符串,看起來像這樣:

"6 9 4, 3 6 8" 

在這種情況下,3個元素之後的逗號是來自另一個列表中元組的長度。

不知道如何做到這一點,我會很感激任何幫助!

謝謝!

編輯:好吧,我正在嘗試編寫一個程序,通過添加元素和查找最小值來「增加」到matrizes。 (CI,J = {分鐘AI,K + BK,J})

我得到了什麼至今

A="4 3 , 1 7" 
B="2 5 9, 8 6 1" 

A1 = A.split(",") 
B1 = B.split(",") 
A2 = [tuple(int(y) for y in x.split()) for x in A1] 
B2 = [tuple(int(y) for y in x.split()) for x in B1] 

D = [] 
for k in range(len(A2)): 
    for j in range(len(B2[0])): 
     C = [] 
     for i in range(len(A2[0])): 
      N = (A2[k][i] + B2[i][j]) 
      C.append(N) 
     D.append((min(C))) 

所以我寫的給我正確的數字,但在列表中。我嘗試了一些來自互聯網的代碼,但它不起作用。給定的字符串A和B可以是nxm的矩陣,這樣我不能將列表剪切成兩部分並將它們加在一起。

謝謝!

+0

你有嘗試過什麼嗎?你有任何嘗試的代碼向我們展示? –

回答

2

您也可以使用列表理解表達式中使用zip爲:

>>> my_list = [6, 9, 4, 3, 6, 8] 
>>> n = 3 
>>> ', '.join([' '.join(map(str, x)) for x in zip(*[my_list[i::n] for i in range(n)])]) 
'6 9 4, 3 6 8' 
+1

完美!適用於任何矩陣輸入,無論nxn是什麼!非常感謝! – Jane

+0

這實際上給了我「6 9 4,3 6 8」,我怎樣才能爲「6 9 4,3 6 8」添加空間? – Jane

+0

我做了一個編輯。我認爲你在那之前複製了代碼。重新檢查它 –

2

你可以試試下面的代碼:

F=[6, 9, 4, 3, 6, 8] 
len_other_list = 3 
F1 = F[:len_other_list] 
F2 = F[len_other_list:] 
reqd_string = ' '.join(map(str, F1))+', '+' '.join(map(str, F2)) 
+0

爲什麼你需要'str(',')'而不是','? – rassar

+0

我的不好,讓我編輯 –

1

一個內膽:

' '.join([str(i) if c != 3 else str(i)+', ' for c,i in enumerate(F,start=1)]) 

這將加入由該空間中的所有元素,第三個元素之間用逗號隔開。如果要在其他元素之後添加逗號,請更改該行中的3enumerate函數計算F中元素的數量,索引從1開始。

join字符串方法將連接列表中的所有元素' '(空格)。

+0

字符串 –

+0

爲真的會有尾隨空格。 '''.join([str(i)if c!= 3 else str(i)+','...' – rassar

+0

Thanks - updated。 – LMc

0

好的。 1正則表達式也:)

import re 

f = [6, 9, 4, 3, 6, 8] 
a = re.sub(r"[\[\],]",r"", ''.join(str(f))) 
print "\""+a[:5]+','+a[5:]+"\"" 

輸出:

"6 9 4, 3 6 8" 
0

我建議這樣的:

F=[6, 9, 4, 3, 6, 8, 9, 10] 
size = 3 

s = ', '.join([' '.join(map(str, F[i:i+size])) for i in range(0, len(F), size)]) 
相關問題