Удалить четное / нечетное число из нечетного / четного списка Python

Я пытаюсь лучше понять понимание списка в Python. Я выполнил онлайн-задание по кодовым войнам с довольно неэффективным решением, приведенным ниже.

Задача была:

Учитывая список четных чисел и одного нечетного, вернуть нечетноеУчитывая список нечетных чисел и одно четное, вернуть четное

Мое (не элегантное) решение этого было:

def find_outlier(integers):
    o = []
    e = []
    for i in integers:
        if i % 2 == 0:
            e.append(i)
        else:
            o.append(i)
    # use sums to return int type
    if len(o) == 1:
        return sum(o)
    else:
        return sum(e)

Который работает отлично, но кажется довольно грубой силой. Я ошибаюсь, думая, что запуск (большинство) функций со списками заполнителей, таких какo а такжеe довольно "как нуб"?

Я хотел бы лучше понять, почему это решение работает для нечетного списка, но не в четном списке, чтобы лучше понять понимание списка:

def find_outlier(integers):
    if [x for x in integers if x % 2 == 0]:
       return [x for x in integers if x % 2 == 0]
    elif [x for x in integers if x % 2 != 0]:
       return [x for x in integers if x % 2 != 0]
    else:
        print "wtf!"

o = [1,3,4,5]
e = [2,4,6,7]

In[1]: find_outlier(o)
Out[1]: [4]

In[2]: find_outlier(e)
Out[2]: [2, 4, 6]

кудаOut[2] должен возвращаться7.

Заранее спасибо за любые идеи.

Ответы на вопрос(3)

Ваш ответ на вопрос