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

时间:2017-06-22 02:43:58

标签: python

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

例如[1,1,1]应输出(0,-1),其中-1表示不在列表中,[1,2,1]应输出(0,1)[1,1,1,2]应输出{{1} }}

1 个答案:

答案 0 :(得分: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])

输出:

[0, -1]

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

tuple([my_list.index(item) if item in my_list else -1 for item in items])

不使用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)