展开全部
两个区别很明显:def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1
首先看enumerate返回的是个iterator
in的话参考文62616964757a686964616fe4b893e5b19e31333363356561档:(下面摘录)
对于定义了__contains__()方法的用户自定义类,x in y为真当且仅当y.__contains__(x)为真。
对于没有定义__contains__()但定义__iter__()的用户自定义类,x in y为真如果某个值z在迭代y时满足x == z。 如果迭代过程中抛出异常,就好像是in抛出那个异常一样。
最后,尝试旧式的迭代协议:如果一个类定义了__getitem__(),x in y为真当且仅当有一个非负的整数索引i使得x == y[i], 且更小的索引不会引发IndexError异常。(如果引发了其它异常,则像是in引发了该异常)。
not in操作符定义为取与in相反的真值。