我有两个清单:
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]
我怎样才能做到这一点?
更新:更正了索引
答案 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]
>>>