Понимание списка:
[item in b for item in a]
Это создает новый список способом, подобным следующему коду:
newList = []
for item in a:
newList.append(item in b)
, где item in b
оценивается как True
, если item
существует в b
, в противном случае он оценивается как False
.
Как упоминалось в комментариях (спасибо Пол Руни !), скорость этого можно улучшить, есливы превращаете b
в набор:
b_set = set(b)
result = [item in b_set for item in a]
Это потому, что операция поиска item in b
занимает согласованное время, если b
является набором, тогда как каждый отдельный элемент должен сравниваться до совпаденияобнаруживается, если b
является списком.
Улучшение скорости не очень заметно, если b
мало, но для списка b
, содержащего сотни элементов, это может быть значительным улучшением.