Вы можете сжать вместе два списка и обработать каждую соответствующую пару элементов.
[10 * a + b if a and b else None for a, b in zip(x, y)]
Это понимание списка объединит a и b, если ни один из них не равен None. В противном случае он просто поместит None.
Редактировать: Если вы просто хотите объединить любые значения, сделайте то же самое, но убедитесь, что вы приведете к строке, так что любое значение будет работать:
[str(a) + str(b) if a and b else None for a, b in zip(x, y)]
Обратите внимание, что он не выполняет слияние на месте, но возвращает новый массив с объединенными значениями