什么是最蟒蛇的方式来做到这一点?

时间:2013-10-14 16:42:08

标签: python coding-style styles

这真是一个好奇心问题。我的代码有效。我有大量的实例,我试图分成不同的组(培训,验证和测试)。它们只列在一个列表中,但重要的是它们保持在23个组中。这是我的实现:

train_end = int(len(instances)*TRAINING_END)
while train_end % CHANNELS != 0:
    train_end -= 1
valid_end = int(len(instances)*VALIDATION_END)
while valid_end % CHANNELS != 0:
    valid_end += 1

然后我使用[:train_end], [train_end:valid_end], [valid_end:]对列表进行分区。我觉得在python中采取这么多步骤的一切都有一个更简单的方法。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以通过执行以下操作跳过while循环:

train_end = (int(len(instances)*TRAINING_END) // CHANNELS) * CHANNELS

这样做的效果是确保int(len(instances)*TRAINING_END)可以被CHANNELS整除。

对于valid_end,效果相同:

valid_end = (int(len(instances)*VALIDATION_END) // CHANNELS + 1) * CHANNELS