python - 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 个类,但是我正在处理的数据集有大量的类,所以需要尽可能地简化。
解决方案
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 :)
推荐阅读
- stored-procedures - BigQuery 存储过程,用于捕获表名以及该表名的记录数
- reactjs - UseEffect 无限执行
- python - 在套接字传输中接收额外的字节
- machine-learning - 如何对每个样本的名义类别对象的无序列表进行编码以进行机器学习
- java - 为什么像 java.net.InetAddress 这样的 Java 类不记录任何内容?
- c++ - glCopyPixels() 没有返回选定的缓冲区像素
- python - 如果存在数据框列值,则读取字典中的文件并返回文件值
- c - 将 char 与输入中的参数进行比较
- discord.py - 当用户对帖子做出反应时打印一些东西的不和谐机器人
- ios - iOS 14 唯一问题:键盘扩展中的图像不再显示(但在 iOS 13 中工作正常)