在列表理解中使用python条件式的elif。

问题描述 投票:0回答:1

比如

for p in list(extracted_data):
  if (p >= 80):
     print ('orange')
  elif(80 > p >= 60):
     print ('red')
  else:
     print('yellow')

有没有同样的列表理解。

list-comprehension python-3.7
1个回答
1
投票

你可以这样做

x = [ 'orange' if p>=80 else 'red' if 80>p >=60 else 'yellow' for p in list(extacted_data)]


0
投票

可读性和可重用性 ?

你的业务逻辑有可能需要在多个地方使用。为什么不创建一个确定颜色的函数,然后使用列表理解来创建你的列表?

def colors(x):
    retval = 'yellow'
    if (x >= 80):
        retval = 'orange'
    elif(80 > x >= 60):
        retval = 'red'
    return retval


print([colors(x) for x in extracted_data])

輸出

['orange', 'orange', 'red', 'yellow']
© www.soinside.com 2019 - 2024. All rights reserved.