l.append("d")
возвращает None
, как и другой вызов. Он изменяет список l
, который вызывается, хотя (что он также делает в другом вызове, но там у вас нет ссылки на объект списка):
>>> l = "a,b,c".split(",")
>>> l.append("d") is None # the append call still returns None
True
>>> l # it does, however, mutate the list
['a', 'b', 'c', 'd']
Чтобы получить тот же результат в одной строке, вы можете просто использовать простую конкатенацию:
l = "a,b,c".split(",") + ["d"]
Если (по какой-то причине) вы хотите использовать list.append
и , чтобы получить результирующий список в одну строку, вам придется прибегнуть к некоторым злодеяниям, таким как приставание к генератору или понимание побочные эффекты (не делайте этого в серьезном коде!):
l = next(x for x in ("a,b,c".split(","),) if not x.append("d"))