如果在python中附加到数组,如何更优雅地执行elif语句

use*_*339 9 python loops

我试图做一个更优雅的代码版本.这基本上只是根据数字将字符串附加到categorynumber.非常感谢任何帮助.

number = [100,150,200,500] 
categoryNumber = []

for i in range (0,len(number)):
    if (number [i] >=1000):
        categoryNumber.append('number > 1000')
    elif (number [i] >=200):
        categoryNumber.append('200 < number < 300')
    elif (number [i] >=100):
        categoryNumber.append('100 < number < 200')
    elif (number [i] >=50):
        categoryNumber.append('50 < number < 100')      
    elif (number [i] < 50):
        categoryNumber.append('number < 50')

for i in range(0,len(categoryNumber)):
    print i
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 9

怎么样:

labels = (
    (1000, 'number >= 1000'),
    (200,  '200 <= number < 1000'),
    (100,  '100 <= number < 200'),
    (50,   '50 <= number < 100'),
    (0,    'number < 50'),
)

for i in number:
    for limit, label in labels:
         if i >= limit:
             categoryNumber.append(label)
             break
Run Code Online (Sandbox Code Playgroud)

  • 虽然你错过了`<50`的情况.我将分类代码放在一个单独的函数中,以增加可读性. (2认同)