Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何避免本节中的重复代码?_Python - Fatal编程技术网

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')])