在列表中查找值的第一个位置

Mat*_*t.S 5 python

如果我有一个1和2的列表,我怎么能找到1和2的第一个索引.

例如[1,1,1]应输出(0,-1),其中-1表示未在列表中,[1,2,1]应该输出(0,1),[1,1,1,2]应该输出(0,3).

stu*_*ent 9

一种方法是为要查找index 和使用index功能和使用的项目创建单独的列表list comprehension(还要进行额外检查以确保项目在列表中,否则 ValueError 将发生):

my_list = [1,1,1]
items = [1,2]
print ([my_list.index(item) if item in my_list  else -1 for item in items])
Run Code Online (Sandbox Code Playgroud)

输出:

[0, -1]
Run Code Online (Sandbox Code Playgroud)

如果需要元组,则可以使用以下tuple函数将上面的列表转换为元组:

tuple([my_list.index(item) if item in my_list else -1 for item in items])
Run Code Online (Sandbox Code Playgroud)

在更长的路上不使用list comprehension:

my_list = [1,1,1]
items = [1,2]
# create empty list to store indices
indices = []

# iterate over each element of items to check index for
for item in items:
    # if item is in list get index and add to indices list
    if item in my_list:
        item_index = my_list.index(item)
        indices.append(item_index)
    # else item is not present in list then -1 
    else:
        indices.append(-1)

print(indices)
Run Code Online (Sandbox Code Playgroud)