python - 在列表中查找字符串的索引

标签 python list

我有两个包含相同数量元素的列表,它们都是字符串。这些字符串是相同的集合,但在每个列表中的顺序不同,没有重复。

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/

相关文章:

python - 打印两个字符串中同一位置不同的特定字符

python - Pandas DataFrame 的嵌套(双)行逐行迭代

python - 执行某些步骤后无法从网页中获取动态填充的数字

python - 在 GTK+ (linux) 中实现类似 facebook 的模式对话框

android - NativeBase - ReactNative - 下拉列表

algorithm - 您如何称呼描述列表包含重复项程度的列表的属性?

arrays - 如何存储在多重图中使用的 ggplots 列表而不覆盖以前的图?

python - 如何获取 python 中具有最大值的列的列?

python - 深度列表计数 - 列表中的列表计数

python - python 中的 list.insert() 实际上做了什么?