Моя цель состоит в том, чтобы перебрать разницу между двумя списками
Я попытался код bodge написать a - b следующим образом
for i in a: if i in b: continue #statements
Мне было интересно, есть ли более питонический/ эффективный способ сделать это.
Вы можете использовать наборы , чтобы увидеть разницу:
a = [1, 2, 3, 4, 5] b = [2, 4, 6] a = set(a) b = set(b) for i in a.difference(b): print(i) # even supports the arithmetic syntax :D for i in a - b: print(i)
С точки зрения наборов, элементы в a, но не в b будут представлять собой разность наборов, поэтому это будет
a
b
for i in set(a).difference(b): # statements
То, что у вас есть, хорошо. Если вы возражаете против оператора continue, вы можете выполнить итерации по генератору:
continue
for i in (x for x in a if x not in b):
, хотя это, возможно, хуже с точки зрения читабельности.