如果我有一个由1和2组成的列表,如何找到第一个1和2的索引。
例如,[1,1,1] 应该输出 (0,-1),其中-1表示不在列表中,[1,2,1] 应该输出 (0,1),[1,1,1,2] 应该输出 (0,3)。
例如,[1,1,1] 应该输出 (0,-1),其中-1表示不在列表中,[1,2,1] 应该输出 (0,1),[1,1,1,2] 应该输出 (0,3)。
一种方法是创建一个单独的列表来查找项的 索引
,并使用 index
函数和使用 列表推导式
(还需进行额外的检查以确保该项在列表中,否则可能会出现 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])
在不使用列表推导的情况下,更冗长地表达:
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)
tuple([my_list.index(item) if item in my_list else -1 for item in items])
而不是仅仅使用[my_list.index(item) if item in my_list else -1 for item in items]
。 - Christian Dean