可以使用enumerate和map,但请记住enumerate和map返回一个可迭代对象。要查看这些值,您可以将它们转换为list by list()并打印它们。
foo = enumerate(['m','t','z','m'])
print(list(foo)) # [(0, 'm'), (1, 't'), (2, 'z'), (3, 'm')]
# now we have tuples of index and value
# next we use map to just get the index, a.k.a first value
bar = map(lambda x: x[0], foo)
print(list(bar)) # [0, 1, 2, 3]
编辑:正如@jasonharper所说,如果你只需要index,range()就可以完成这项工作
baz = ['m','t','z','m']
foo = range(len(baz)) # 0 1 2 3
# if you only want the index of certain value you can do
bar = filter(lambda x: baz[x] == "m", foo)
print(list(bar)) # [0, 3]
3条答案
按热度按时间ehxuflar1#
可以使用enumerate和map,但请记住enumerate和map返回一个可迭代对象。要查看这些值,您可以将它们转换为list by list()并打印它们。
编辑:正如@jasonharper所说,如果你只需要index,range()就可以完成这项工作
但是记住range()和filter()返回一个iterable。
oewdyzsn2#
你想要的是
enumerate
:jrcvhitl3#