给定字符串列表在其他列表中查找索引

时间:2014-03-30 06:20:10

标签: python list

我有两个清单:

 items = ['SZ1/SS1', 'ZZ1/ZS1', 'ZS1/SS1', 'ZZ1/SZ1', 'ZZ1/SS1', 'SZ1/ZS1']
 z1_wanted = ["SZ1/SS1", "ZS1/SS1", "ZZ1/SS1"]

鉴于z1_wanted中的字符串,我想获取items中字符串的索引, 返回

   [0, 2, 4]

我怎样才能做到这一点?

更新:更正了索引

2 个答案:

答案 0 :(得分:1)

你可以使用列表理解,就像这样

print [items.index(item) for item in z1_wanted]
# [0, 2, 4]

您也可以使用map功能,就像这样

print map(items.index, z1_wanted)
# [0, 2, 4]
如果在index中找不到item

请记住 items函数会抛出错误。

如果你想做相反的事情,那么你可以做

myid = [1,3,4]
print [items[item] for item in myid]
# ['ZZ1/ZS1', 'ZZ1/SZ1', 'ZZ1/SS1']

答案 1 :(得分:1)

这是使用列表理解和枚举的另一种方式:

>>> [i for i, j in enumerate(items) if j in z1_wanted ]
[0, 2, 4]
>>>