Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.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_Directory - Fatal编程技术网

Python 打印列表中的项目等(打印嵌套列表)

Python 打印列表中的项目等(打印嵌套列表),python,directory,Python,Directory,我正在尝试编写一个基本上可以打印的函数: file1 file2 file3 file4 file5 file6 file7 当我进入时: C = [['file1', [['file2']], ['file3', 'file4', 'file5']], 'file6', ['file7']] 它应该像一个目录 这是我的密码: def tree_traverse(directory) : list1 = list(directory) for it in lis

我正在尝试编写一个基本上可以打印的函数:

file1

file2

file3

file4

file5

file6

file7
当我进入时:

C = [['file1', [['file2']], ['file3', 'file4', 'file5']], 'file6', ['file7']]
它应该像一个目录

这是我的密码:

def tree_traverse(directory) :

    list1 = list(directory)
    for it in list1 :
        if it == 'Cc' :
            del(list1[:(list1[it]+3)])
    for item in directory :
        print(item)
每当我输入上面的输入时,我都会得到一个错误,说C是一个意外的参数。 此外,当我在没有“C=”的情况下输入上述输入时,它只会像我输入的那样打印它。
我完全不知道该怎么做。

函数没有名为
C
的参数,因此您无法传递名为
C
的参数。使用
directory=…
,或者将对象作为普通参数传递给它

C = ...
tree_traverse(C)

这会根据您的需要将列表展平

C = [['file1', [['file2']], ['file3', 'file4', 'file5']], 'file6', ['file7']]

def getFiles(container):
    for f in container:
        if isinstance(f, list):
            for fArray in getFiles(f):
                yield fArray
        else:
            yield f

print "".join("%s\n" %f for f in list(getFiles(C)))
使用递归方法(适用于不定层数的层):


... 什么的意外参数?@Ignacio这是我得到的错误:回溯(上次调用):文件“”,第1行,在树遍历中(C=[['file1',['file2']],['file3','file4','file5']],'file6',['file7']])类型错误:树遍历()得到一个意外的关键字参数'C'相关:好的,效果更好,但我仍然不确定如何打印每个嵌套项。如果它有两个以上的层怎么办?你能举个例子吗?对不起,我误读了你的代码。我没有意识到您有一个递归方法(这是我在深夜尝试浏览代码时得到的)+我真的很喜欢你的答案
def print_list(obj, final_string=""):
    if isinstance(obj, list):
        for itm in obj:
            final_string = print_list(itm, final_string)
        return final_string
    else:
        return final_string + "\n" + obj

print print_list(c)