首页 > 解决方案 > Python - 可以简化多个 if-condition 和 append

问题描述

如果可以简化以下代码。

c0, c1, c2, c3, c4, c5, c6, c7, c8, c9 = ([] for _ in range(10))
  
  for i in dataset:
    if i[1] == 0:
      c0.append(i)
    elif i[1] == 1:
      c1.append(i)
    elif i[1] == 2:
      c2.append(i)
    elif i[1] == 3:
      c3.append(i)
    elif i[1] == 4:
      c4.append(i)
    elif i[1] == 5:
      c5.append(i)
    elif i[1] == 6:
      c6.append(i)
    elif i[1] == 7:
      c7.append(i)
    elif i[1] == 8:
      c8.append(i)
    else:
      c9.append(i)

尝试将整个数据集划分为按类别划分的多个数据集。下面的代码只是一个例子,它只有 10 个类,但是我正在处理的数据集有大量的类,所以需要尽可能地简化。

标签: pythonpython-3.xlistif-statement

解决方案


Better with a list:

lsts = [c0, c1, c2, c3, c4, c5, c6, c7, c8]
for i in dataset:
    if i[1] < len(lsts):
        lsts[i[1]].append(i)
    else:
        c9.append(i)

And the lists will contain what you want :)


推荐阅读