enumerate(sequence)
是相當多的類似形式的構造:
for i in range(len(sequence)):
# get sequence[i] and return i and sequence[i] for all i's
所以,在你的代碼,替換enumerate
完全可以這樣做:
for i in range(len(xs)):
x = xs[i]
if v == x:
count += 1
if count == 2:
return i
,或在不分配給x
名稱以臨時保存序列項目:
for i in range(len(xs)):
if v == xs[i]:
count += 1
if count == 2:
return i
創建一個小my_enumerate
功能,也相當簡單:
def my_enumerate(sequence, start=0):
for i in range(len(sequence)):
yield start+i, sequence[i]
start
也被定義爲在enumerate
使用,得到的0
默認值匹配。
不是yield
荷蘭國際集團的值(如果這是神祕的你),你可以創建一個列表(發電機內涵是類似於yield
荷蘭國際集團)的理解和返回代替:
def my_enumerate(sequence, start=0):
return [(start+i, sequence[i]) for i in range(len(sequence))]
實現您自己的'枚舉'功能並使用它。 –
@RickTeachey我不知道從哪裏開始。我並不真正理解枚舉的概念 – struggling
您可以像您所做的那樣創建一個函數。每當你經過循環時計數器都會增加。它返回一個包含項目編號和項目的二元組列表。 –