我遇到了一个我很困惑的问题所以决定查一查。但是,我对代码中的一些函数做了些什么感到困惑。问题是'写一个函数来摆脱重复的字母'
def remove_duplicates(s):
result = ""
dic = {}
for i in s:
if i not in dic:
result+=i
if ord(i.lower()) >= ord('a') and ord(i.lower()) <= ord('z'):
dic[i] = 1
return result
print(remove_duplicates("bookkeeper"))
我对结果=“”和dic = {}的目的有点困惑?我以前从未见过这个,所以不知道它是如何工作的。
结果+ =我是什么意思?最后我完全不知道if ord系列会发生什么。 Ord是我刚刚在一小时前学到的东西,所以我不知道它是如何与i.lower和'a'/'z'进行交互的。
答案 0 :(得分:2)
result = ""
创建一个名为result
的变量,并将其初始化为空字符串。
dic = {}
创建一个名为dic
的变量,并将其初始化为空字典。 (字典是特殊的Python对象。)
result += i
是result = result + i
的缩写。
if ord
行确保i
是A和Z之间的字母。(虽然这似乎是一种非常迂回的方式。)
也许您应该花一些时间学习基础Python教程?
答案 1 :(得分:1)
result = "" and dic = {}
将变量结果初始化为空字符串,并将其作为字典。
result+=i mean
=== result = result + i
关于ord(),它检查i.lower是否在a - z
的“范围”内