Konkrétně je obojí kupa hnoje. První zápis bych asi ještě zkousnul. Ale zapsat to na více řádků mě přijde jako úplný nesmysl. Tam postrádám jediný rozumný důvod proč nepoužít for a vnořené if. Navíc je to ještě nečitelnější než bez jakýchkoliv závorek.
l = [] for x in values if x < 0: l.append("negative") elif x > 0: l.append(""positive") else: l.append("zero")
nebo ješte lépe, jak bych to udělal:
def foo(x): if x < 0: return "negative" elif x > 0: return ""positive" else: return "zero" converted = [foo(x) for x in values]