试图比较列表元素

时间:2017-08-22 15:20:16

标签: python list

在下面的代码中,if path_parts[-2:-1]=='training'我希望我的功能可以进入计算该位置的文件。我的print(path_parts[-2:-1])表明代码正在寻找培训'文件夹我正在寻找,但评估并不能证明是真的。

我做错了什么?

for dirs_name, sub_dirs, files in os.walk(file_path):
    count=0
    name=''
    if os.path.basename(dirs_name)== '2016':
        path_parts = [x.lower() for x in dirs_name.split('\\')]
        print(path_parts[-2:-1])
        if path_parts[-2:-1] == 'training':
            'statement'

Output of the print statement       
['training']
['training']
['training']
['training']

2 个答案:

答案 0 :(得分:3)

正如您从输出中看到的那样,path_parts[-2:-1]['training']。这是一个清单。但是,您要将其与'training'进行比较,后者是一个字符串。

你的意思是:

# Is this sublist equal to a list containing the string 'training'?
if path_parts[-2:-1] == ['training']:

或更简单:

# Is the element at position -2 equal to the string 'training'?
if path_parts[-2] == 'training':

答案 1 :(得分:3)

您的path_parts[-2:-1]会返回一个列表(因为您对列表进行切片),然后将其与字符串'training'进行比较。这总是False因为这些列表和字符串是无法比拟的。

但您可以使用path_parts[-2]

简单地访问倒数第二个项目
if path_parts[-2] == 'training':