Python打印列表中空字符串上方的字符串

Python打印列表中空字符串上方的字符串,python,Python,您好,我对python相当陌生。我有一个剧本是给我的。我希望能够识别列表中的空字符串。“打印文件列表”显示以下内容。这是列表列表还是列表中的字符串 ['C:/test\\07072013_0001.zip'] ['C:/test\\07072013_0006.zip'] [] ['C:/test\\07072013_00018.zip'] 有数百个文件。我希望它直接在空的[]上方打印拉链的名称。可能有多个空的。 例如,只需打印: ['C:/test\\07072013_0006.zip']

您好,我对python相当陌生。我有一个剧本是给我的。我希望能够识别列表中的空字符串。“打印文件列表”显示以下内容。这是列表列表还是列表中的字符串

['C:/test\\07072013_0001.zip']
['C:/test\\07072013_0006.zip']
[]
['C:/test\\07072013_00018.zip']
有数百个文件。我希望它直接在空的[]上方打印拉链的名称。可能有多个空的。 例如,只需打印:

['C:/test\\07072013_0006.zip']
我尝试了for循环,但它似乎只是绕过了空字符串,只列出了文件夹中的zip文件。谢谢你的帮助

实际产量:

=================================================重新启动================================

['C:/Users/cb/Desktop/data/test\\07072013_0001.zip']
[]
['C:/Users/cb/Desktop/data/test\\08042013_0025.zip']
['C:/Users/cb/Desktop/data/test\\08042013_0031.zip']
['C:/Users/cb/Desktop/data/test\\08042013_0037.zip']
[]
['C:/Users/cb/Desktop/data/test\\08042013_0049.zip']
打印类型(文件列表)
>>>=================================================重新启动================================
>>> 
这是列表列表还是列表中的字符串

['C:/test\\07072013_0001.zip']
['C:/test\\07072013_0006.zip']
[]
['C:/test\\07072013_00018.zip']
这是一份清单

[
[element], 
[element], 
[element], 
[element], 
]
字符串列表如下所示:

[
'element', 
'element', 
'element', 
'element', 
]
我尝试了for循环,但它似乎只是绕过了空字符串,只列出了文件夹中的zip文件


请发布您迄今为止尝试过的内容,以及它提供的输出。我将编辑此答案,并提供我可以建议的任何更正。

您可以在此处使用
itertools.izip
itertools.izip
返回一个迭代器,因此它是内存有效的,如果列表不是很大,那么您也可以使用内置函数
zip

from itertools import izip, tee
lis = [['a'], [], ['b'], ['c'], [], [], ['d'], []]
it1, it2 = tee(lis)
next(it2)
for x, y in izip(it1, it2):
    if x and not y:
        print x
输出:

['a']
['c']
['d']

您可以使用
zip
获取以前的文件名:

fileList = [['C:/test\\07072013_0001.zip'],
            ['C:/test\\07072013_0006.zip'],
            [],
            ['C:/test\\07072013_00018.zip'],
           ]

for file, prev in zip(fileList[1:],fileList):
    if not file:
        print prev
这将打印出:

['C:/test\\07072013_0006.zip']
第一种解决方案 输出:

[['b'], ['g'], ['i']]
b
g
i

['b', 'g', 'i']

第二种解决方案 输出:

[['b'], ['g'], ['i']]
b
g
i

['b', 'g', 'i']

目前请提供您的代码。发布
打印文件列表的实际输出。您显示的只是4个单独的列表,但我假设您删除的整个内容周围都有列表大括号。不,这是确切的输出,整个内容周围没有大括号。谢谢。@Andrew不,不是这样,您不能用
打印文件列表
获得此输出。看起来您正在迭代
文件列表
并打印单个项目。我想您的意思是
枚举
。是的!(它仍然很俗气,但至少没有拖出itertools)。你好,谢谢。从您的脚本中,我将用什么替换文件列表?a代表文件列表。@Jim不,它不适用于我。我认为前面运行的函数会创建一个奇怪的输出,就像我在上面的RESTART下发布的那样。根据Karan的说法,这看起来不像一个或多个列表,或字符串列表。如果
ref
看起来像:
[[],['a'],…,['l']]
b
g
i

['b', 'g', 'i']