我有一个函数可以检查给定函数中的文件和目录更改,并返回一个列表元组,如下所示: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
循环中的部分?
像这样只是感觉有点...... 丑陋。
答案 0 :(得分:6)
怎么样:
for a,b in zip(lists, extendwith):
a.extend(b)
答案 1 :(得分: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)
现在你有一个列表而不是四个列表。