删除重复字符的位置

你好,我的程序应该打印输入的字符串的长度,只有在不重复的情况下才打印放入列表中的字符,然后打印这些字符的位置列表。我相信有很多方法可以做到这一点,然而,这是我能想到的唯一方法,只需设置另一个变量并将该变量添加到列表中,然而在添加它之后,我需要找到一种方法来删除重复字符的位置。谢谢。

选择 | 换行 | 行号
  1. string = raw_input("Enter string->")
  2. length = len(string)
  3. indx = 0
  4. z = 0
  5. print "The length of the string is", length
  6. chars_stored = []
  7. frequencysite = []
  8. while length > indx:
  9.     if string[indx] == chars_stored:
  10.         indx = indx + 1
  11.     elif string[indx] != chars_stored:
  12.         chars_stored = chars_stored + [(string[indx])]
  13.         frequencysite = frequencysite + [z]
  14.         z = z + 1        
  15.         indx = indx + 1
  16.  
  17.  
  18. print chars_stored
  19. print frequencysite
  20.  
# 回答1


如果要查看数组中是否存在某个元素,请使用'in'运算符,而不是==运算符。至于删除重复项,您不需要这样做,只是不要添加到您正在构建的新列表中。
# 回答2


我该怎么做?(附后)
# 回答3


你已经在这么做了。在第12行,您将添加到新列表中。
# 回答4


然而,当我运行它时,它为我提供了所有字符的位置,包括重复的字符。
# 回答5


这是因为你还没有解决我在第二篇文章中提到的比较问题。
# 回答6


当我更改它时,它给了我新列表中字符的位置,而不是原始列表中字符的位置
# 回答7


这是因为您追加的是a变量,而不是indx变量。
# 回答8


谢谢!
这是个愚蠢的错误,但谢谢,我对此深表遗憾

标签: python

添加新评论