先看一个小例子,使用lamda表达式结合if-else结构完成对selectColor的赋值。该实例来源引用
C0LOR1 = "PapayaWhip"
COLOR2 = "Tan"
num_1 = 1
selectColor = ( lambda n: C0LOR1 if n % 2 == 0 else COLOR2)(num_1)
print(selectColor)
接下来,挑战使用for循环的后置写法和lamda表达式的if-else结构结合。目的是将每个字符串映射到对应的标签上。
label_list = ['Motorboat', 'Ocean Liner', 'RORO', 'Ocean Liner', 'Motorboat', 'Motorboat', 'Ocean Liner',
'Ocean Liner',
'Motorboat', 'Cangas', 'Motorboat', 'RORO', 'Ocean Liner', 'Cangas', 'Cangas', 'Motorboat',
'Motorboat',
'Ocean Liner', 'RORO', 'RORO', 'RORO', 'Cangas', 'Cangas', 'Cangas', 'Ocean Liner', 'Cangas', 'RORO',
'RORO']
label1 = '1'
label2 = '2'
label3 = '3'
label4 = '4'
y = [(lambda x: label1 if x == 'Cangas' else (label2 if x == 'Motorboat' else (label3 if x == 'Ocean Liner' else (label4))))(x) for x in label_list]
print(y)
# ['2', '3', '4', '3', '2', '2', '3', '3', '2', '1', '2', '4', '3', '1', '1', '2', '2', '3', '4', '4', '4', '1', '1', '1', '3', '1', '4', '4']