Python 如何避免本节中的重复代码?
Python 如何避免本节中的重复代码?,python,Python,ds\u-trn,ds\u-val=SetDataset(trn,批次大小,'train'),SetDataset(val,批次大小,'val') 如何避免SetDataset出现两次,而只出现一次?您可以这样做,但在我看来,它的可读性较差: ds_trn, ds_val = (SetDataset(thing, batch_size, name) for thing, name in [(trn, 'train'), (val, 'val')]) 对于两个变量来说,这似乎有些过分,但如果您需
ds\u-trn,ds\u-val=SetDataset(trn,批次大小,'train'),SetDataset(val,批次大小,'val')
如何避免SetDataset出现两次,而只出现一次?您可以这样做,但在我看来,它的可读性较差:
ds_trn, ds_val = (SetDataset(thing, batch_size, name) for thing, name in [(trn, 'train'), (val, 'val')])
对于两个变量来说,这似乎有些过分,但如果您需要一个相对较大的
SetDataset
对象列表,它将非常有用。您可以这样做,但在我看来,它的可读性较差:
ds_trn, ds_val = (SetDataset(thing, batch_size, name) for thing, name in [(trn, 'train'), (val, 'val')])
对于两个变量来说,这看起来有些过分,但如果您需要一个相对较大的
SetDataset
对象列表,它将非常有用。只有当您有两个以上的对象要初始化时,这可能才有用:
ds_trn, ds_val = map(lambda p : SetDataset(*p), [(trn, batch_size, 'train'), (val, batch_size, 'val')])
只有当您有两个以上的对象要初始化时,这可能才有用:
ds_trn, ds_val = map(lambda p : SetDataset(*p), [(trn, batch_size, 'train'), (val, batch_size, 'val')])