可以直接用函数返回的列表元组扩展多个列表吗?
我有一个函数,它会检查文件和目录的变化,然后返回一个包含多个列表的元组,像这样:addedFiles, removedFiles, addedDirs, removedDirs
。这个元组里的每个子列表都是字符串的列表(或者是空的)。我需要把这个函数返回的结果添加到这些列表的本地版本中。
这个经过大量修改的代码展示了我想要的结果:
addedFiles, removedFiles, addedDirs, removedDirs = [],[],[],[]
for dir in allDirs:
a,b,c,d = scanDir( dir )
addedFiles.extend( a )
removedFiles.extend( b )
addedDirs.extend( c )
removedDirs.extend( d )
但是,我想知道在for
循环里面的部分有没有更好的写法?
这样写感觉有点……难看。
2 个回答
2
params = ('addedFiles', 'removedFiles', 'addedDirs', 'removedDirs')
paramDict = dict((param, []) for param in params)
for dir in allDirs:
for param, data in zip(params, scanDir(dir)):
paramDict[param].extend(data)
现在你有了一个字典,里面包含了多个列表,而不是四个单独的列表。
6
这样怎么样:
for a,b in zip(lists, extendwith):
a.extend(b)