是否可以使用函数返回的列表元组直接扩展多个列表?

时间:2011-03-22 12:56:05

标签: python

我有一个函数可以检查给定函数中的文件和目录更改,并返回一个列表元组,如下所示: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 个答案:

答案 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)

现在你有一个列表而不是四个列表。