, Если Вы хотите:
c1 = [1, 6, 7, 10, 13, 28, 32, 41, 58, 63]
c2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]
c3 = [[13, 32], [7, 13, 28], [1,6]]
Тогда вот Ваше решение для Python 2:
c3 = [filter(lambda x: x in c1, sublist) for sublist in c2]
В Python 3 filter
возвращает повторяемое вместо list
, таким образом, необходимо перенестись filter
вызовы с list()
:
c3 = [list(filter(lambda x: x in c1, sublist)) for sublist in c2]
Объяснение:
часть фильтра берет объект каждого подсписка и проверки, чтобы видеть, находится ли это в исходном c1 списка. Понимание списка выполняется для каждого подсписка в c2.
Встраиваемые компоненты (или составные элементы, как бы вы их ни называли) обычно содержат более одного свойства и, таким образом, сопоставляются более чем с одним столбцом. Следовательно, весь компонент, являющийся нулевым, можно рассматривать по-разному; Спецификация J2EE не требует того или иного способа.
Hibernate считает компонент равным NULL, если все его свойства равны NULL (и наоборот). Таким образом, вы можете объявить одно (любое) из свойств ненулевым (либо в @Embeddable
, либо как часть @AttributeOverride
в @Embedded
) для достижения что вы хотите.
В качестве альтернативы, если вы используете Hibernate Validator, вы можете аннотировать свое свойство с помощью @NotNull
, хотя это приведет только к проверке на уровне приложения, а не на уровне базы данных.