2014-10-30 119 views
0

我無法正確輸出我的代碼(用於學校)。
st =輸入字符串
ch =輸入字符(這是python在st中搜索ch)
代碼找到爲ch輸入的字符的大寫字母和小寫字母,並在輸出中顯示它們的位置(以相反的順序)。
所以,我在如何從輸出中刪除括號(即[])和其他

def whichPositionsRev (st, ch): 
    if ch in st: 
     inverseFindChar = [index for index,char in enumerate(list(st)) if char==ch ] 
     return "Yes..." + str(inverseFindChar[::-1]) 
    else: 
     return "No" 

輸入驗證碼,我想拿到「是...... 8 5 2」作爲返回值(如果我在「abXabXabX」鍵入的ST和CH「X」) ,但我一直在收到'是... [8,5,2]'作爲輸出。我想知道 哪部分代碼導致它將括號和逗號放在返回輸出中?

回答

0

你問的部分是str()函數調用。 Python會在輸出中放入括號和逗號,以便查看數組元素。

如果你想用空格分隔的數組元素,使用

" ".join(map(str, inverseFindChar[::-1])) 
+0

啊,OK,與支架固定的問題,謝謝。你是否知道,如何在輸出結尾添加空格('')?我現在得到了正確的輸出結果,但問題是要求輸出爲'Yes ... 8 5 2',最後我沒有獲得額外的空間。 – Dennis 2014-10-30 02:38:50

+0

您是否嘗試過在最後添加空格? – recursive 2014-10-30 02:39:25

+0

@recursive是的,我做了,但其中一個測試代碼是隱藏的,我試圖在最後放入空間,它說結果失敗。 – Dennis 2014-10-30 02:45:23

1

因爲你的陣列上調用str(),你所得到的數組的字符串表示。

更換

str(inverseFindChar[::-1]) 

" ".join(str(x) for x in inverseFindChar[::-1])