是否可以单线执行此循环?

时间:2019-08-17 10:12:43

标签: python loops

有人知道如何一口气做到这一点吗?

def epad(data):
    data = data.upper()
    out = []
    for i in range(len(data)):
        out.append(ord(data[i]))
    return out

2 个答案:

答案 0 :(得分:3)

是的,您可以使用list comprehension

def epad(data):
    return [ord(ch) for ch in data.upper()]

或者您可以使用map

def epad(data):
    return list(map(ord, data.upper()))

答案 1 :(得分:3)

使用lambdalist comprehension

epad = lambda data: [ord(c) for c in data.upper()]

编辑:

如果您更喜欢使用def而不是lambda,那么我也将它用一根衬纸覆盖了:

def epad(data): return [ord(c) for c in data.upper()]