Python列表理解转换

Python list comprehension conversion

本问题已经有最佳答案,请猛点这里访问。

如何使用列表理解重新编写此函数?结果函数应该只有两行:定义行和包含列表理解表达式的返回行。

1
2
3
4
5
6
7
8
def processList(listOfNumbers):
    result = []
    for i in listOfNumbers:
        if i<0:
            result.append(i*i)
        else:
            result.append((i*i)+1)
    return result


您可能试图这样做:

1
2
def processList(listOfNumbers):
    return [i ** 2 if i < 0 else i ** 2 + 1 for i in listOfNumbers]