删除字符串-Python中的重复项

时间:2016-05-10 22:05:29

标签: python-2.7

我在网上找到了这个代码,但不知道它是如何工作的。我无法理解下面的内容,

if ans_str.find(s) == -1:
        ans_str += s

完整的代码:

def remove_dup(string): 
   ans_str = string[0]

   for s in string:
      if ans_str.find(s) == -1:
          ans_str += s

   return ans_str

print remove_dup("aabbacc")

2 个答案:

答案 0 :(得分:0)

该功能基本上是从输入string创建一个新字符串,同时删除重复的字符。

ans_string最初只以第一个字符开头,在本例中为a

让我们看看函数的主要部分:

for s in string:
  if ans_str.find(s) == -1:
      ans_str += s

这是做什么的,对于string中的每个角色,我们在ans_str中寻找该角色。这是通过使用ans_str.find(s)完成的。如果字符已经存在于字符串中,它将返回它所在的索引,否则它将返回-1。因此,如果它返回-1,则表示分配给s的字符在ans_str中不存在,我们可以安全地将其添加到ans_str,否则我们会忽略该字符。

该函数应在输入abc上返回aabbacc

答案 1 :(得分:0)

def remove_dup(string): 
   ans_str = string[0] # sets "ans_str" equal to the first character of string

   for s in string: # loops through all of the characters in string
      if ans_str.find(s) == -1: 
          # this checks if the current letter can be found in ans_strin
          # if the current letter is found it will return 0 if not it returns -1
          ans_str += s # this appends the current character to ans_str if ans_string.find() returns -1
   return ans_str 

print remove_dup("aabbacc")