我目前正在学习Python,并且正在研究codewars.com challenge,但似乎无法弄清楚为什么第二个for循环只使用第一个元素,然后再使用第二个元素。我知道它与 text_lst.remove(char)有关,但是我不确定为什么。我知道当然有更好的方法来完成此挑战,但是在这一点上,我只想知道为什么它不起作用。这是我的代码:
def duplicate_count(text):
print(text)
text = text.lower()
text_lst = []
for c in text:
text_lst.append(c)
count = 0
mem = []
for char in text_lst:
print(char)
text_lst.remove(char)
if (char not in mem) and (char in text_lst):
mem.append(char)
count = count + 1
return count
它正在与这些示例一起运行:
test.assert_equals(duplicate_count("abcde"), 0)
test.assert_equals(duplicate_count("abcdea"), 1)
test.assert_equals(duplicate_count("indivisibility"), 1)
第二个for循环中的print语句仅打印出其他所有字符。