所以我创建的函数的行为与内置的枚举函数类似,但返回元组列表(索引,值)。
这是我的功能:
def my_enumerate(items):
"""return a list of tuples (i, item) where item is the ith item,
with 0 origin, of the list items"""
result = []
for i in items:
tuples = ((items.index(i)), i)
result.append(tuples)
return result
因此,在使用以下内容进行测试时:
ans = my_enumerate([10, 20, 30])
print(ans)
它将返回:
[(0, 10), (1, 20), (2, 30)]
所以它确实有效,但在测试时:
ans = my_enumerate(['x', 'x', 'x'])
print(ans)
它返回:
[(0, 'x'), (0, 'x'), (0, 'x')]
它应该在哪里:
[(0, 'x'), (1, 'x'), (2, 'x')]
我怎样才能得到它以便它返回呢?
答案 0 :(得分:1)
问题是items.index(i)
。如果同一对象有多个,index
函数将返回第一个索引。由于您有3个'x'
,因此它将始终返回第一个'x'
的索引。
def my_enumerate(items):
"""
return a list of tuples (i, item) where item is the ith item, with 0 origin, of the list items
"""
result = []
for index in range(len(items)):
tuples = (index, items[index])
result.append(tuples)
return result