需要字符串作为左操作数,而不是反转错误

时间:2016-01-15 23:42:58

标签: python python-3.x

所以这是我目前的代码:

def mirror(s, v, m):
    rev = reversed(v)
    if(v in s):
         if(rev in s):
              if(m in s):
                  return True
    return False
str1 = "abcmcba"
str2 = "abc"
str3 = "m"
mirror(str1, str2, str3)

它应该返回true,但不断给我错误: 需要字符串作为左操作数,而不是反转

4 个答案:

答案 0 :(得分:1)

确实,reverse不返回一个字符串,它返回 generator 迭代器。

试试这个:

rev = ''.join(reversed(v))

答案 1 :(得分:1)

您可以将该功能简化为以下内容:

def mirror(s, v, m):
    return m in s and v in s and v[::-1] in s

请注意,我已经先进行了最快速的检查,这样就不会浪费时间在慢速操作上,除非它们是必要的。

答案 2 :(得分:0)

好的我修好了,我改变了:

 rev = reversed(v)

rev = v[::-1]

答案 3 :(得分:-4)

你需要这一行:

rev = str(reverse(v))。join('')

reverse(v)返回一个反向类型的对象...当你与s类型的字符串进行比较时,这会失败。