У меня есть два списка A,B, и я сопоставляю значения с помощью map(), как показано ниже. Это отлично работает, когда оба списка имеют элементы. Однако, когда оба A,B пусты, я получаю сообщение об ошибке. Я также представляю ожидаемый результат.
A=[]
B=[]
tol=1e-12
CA, CB = map(list, zip(*((a, b) for a, b in zip(B, A) if a[0]>tol)))
print(CA)
print(CB)
Ошибка
in <module>
CA, CB = map(list, zip(*((a, b) for a, b in zip(B, A) if a[0]>tol)))
ValueError: not enough values to unpack (expected 2, got 0)
Ожидаемый результат
CA=[]
CB=[]
if len(A) == 0 or len(B) == 0:
CA = []
CB = []
else:
CA, CB = map(list, zip(*((a, b) for a, b in zip(A, B) if a[0] > tol)))