对Python代码感到困惑(初学者)

时间:2017-05-13 04:36:34

标签: python

我遇到了一个我很困惑的问题所以决定查一查。但是,我对代码中的一些函数做了些什么感到困惑。问题是'写一个函数来摆脱重复的字母'

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'进行交互的。

2 个答案:

答案 0 :(得分:2)

result = ""创建一个名为result的变量,并将其初始化为空字符串。

dic = {}创建一个名为dic的变量,并将其初始化为空字典。 (字典是特殊的Python对象。)

result += iresult = result + i的缩写。

if ord行确保i是A和Z之间的字母。(虽然这似乎是一种非常迂回的方式。)

也许您应该花一些时间学习基础Python教程?

答案 1 :(得分:1)

result = "" and dic = {}将变量结果初始化为空字符串,并将其作为字典。

result+=i mean === result = result + i

关于ord(),它检查i.lower是否在a - z

的“范围”内