我有两个包含相同数量元素的列表,它们都是字符串。这些字符串是相同的集合,但在每个列表中的顺序不同,没有重复。
list_a = ['s1', 's2', 's3', 's4', 's5', ...]
list_b = ['s8', 's5', 's1', 's9', 's3', ...]
我需要遍历 list_a
中的每个元素并在 list_b
中找到包含相同元素的索引。我可以用两个嵌套的 for 循环来做到这一点,但必须有更好/更有效的方法:
b_indexes = []
for elem_a in list_a:
for indx_b, elem_b in enumerate(list_b):
if elem_b == elem_a:
b_indexes.append(indx_b)
break
最佳答案
如果没有重复,你可以直接使用list.index()
:
list_a = ['s1', 's2', 's3', 's4', 's5']
list_b = ['s8', 's5', 's1', 's9', 's3']
print [list_b.index(i) for i in list_a]
你只需要使用一个for循环,因为你说过list_a中的字符串也出现在list_b中,所以没有必要去if elem_b == elem_a:
并遍历第二个列表。
关于python - 在列表中查找字符串的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19223877/