2014-10-30 82 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])