list_1 = ["a", "b", "c", "d", "e"]
list_2 = ["a", "c", "d"]
Run Code Online (Sandbox Code Playgroud)
我希望其中的元素索引list_1不在中list_2。我希望在这里
[1, 4]
Run Code Online (Sandbox Code Playgroud)
就我而言,list_2是list_1所有元素的唯一子集。没有使用显式循环的更好方法吗?
Sel*_*cuk 10
您可以使用条件列表理解:
>>> [i for i, item in enumerate(list_1) if item not in list_2]
[1, 4]
Run Code Online (Sandbox Code Playgroud)
此解决方案的时间复杂度为O(n*m)。对于较大的列表,将其转换list_2为是有意义的,set因为在中搜索要快得多set。以下解决方案是O(n):
>>> set_2 = set(list_2)
>>> [i for i, item in enumerate(list_1) if item not in set_2]
[1, 4]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |