python中的For循环帮助

python中的For循环帮助,python,python-3.x,list,loops,for-loop,Python,Python 3.x,List,Loops,For Loop,需要你帮忙吗 我正在尝试将列表newtrack(文件夹中的歌曲名称)与电子表格中的列表filezto和相册进行匹配。 如果文件夹中的歌曲名称匹配列表文件ZTO并具有Nasb的唱片集,则将其复制到文件夹列表(ORDFLDTOSRT),如果不是Nasb唱片集,则将歌曲复制到列表(NTSUFFLDRS) 由于某些原因,在运行时,if语句不会同步它们,以便打印它们是否匹配并将文件复制到文件夹中。我尝试了不同的选择,但无法使其工作。提前谢谢 albm=[“NASB”、“NASB”、“NASB”、“NASB

需要你帮忙吗

我正在尝试将列表newtrack(文件夹中的歌曲名称)与电子表格中的列表filezto和相册进行匹配。 如果文件夹中的歌曲名称匹配列表文件ZTO并具有Nasb的唱片集,则将其复制到文件夹列表(ORDFLDTOSRT),如果不是Nasb唱片集,则将歌曲复制到列表(NTSUFFLDRS)

由于某些原因,在运行时,if语句不会同步它们,以便打印它们是否匹配并将文件复制到文件夹中。我尝试了不同的选择,但无法使其工作。提前谢谢

albm=[“NASB”、“NASB”、“NASB”、“NASB”、“NTSB”、“NTSB”、“NTSB”、“NTSB”]
新机架=[
“Track1.mp3”,
“Track2.mp3”,
“Track3.mp3”,
“Track4.mp3”,
“Track5.mp3”,
“Track5.mp3”,
]
filezto=[
“Track1.mp3”,
“Track2.mp3”,
“Track3.mp3”,
“Track4.mp3”,
“Track5.mp3”,
“Track5.mp3”,
]
ordfldrtosrt=[“1-GEN-GENE”、“2-EXO-Exos”、“3-LEV-LEV”、“4-NUM-Numb”]
ntsubfldrs=[“1-MAT-Matt”、“2-MRK-Mar”、“3-LUK-LI”、“4-JHN-Jo”]
对于albm中的相册:
对于新机架、文件ZTO、ordfldrtosrt、NTSubFLDR(
(ntk、ft、otm、nts)
用于新机架中的ntk
对于文件中的ft
用于ordfldrtosrt中的otm
对于NTLDR中的nts
):
如果相册==“Nasb”和新相册==文件ZTO:
打印(“是”,newtrack,“文件到”,filezto)
#shutil.copy('C:\\Users\\mrdrj\\Desktop\\SJ\\NASB\\\'+newtracks,'D:\\Desktop\\pythonProject\\NASB\\'+ordfldrtosrt+'\\\'+newtracks)
其他:
打印(“否”,newtrack,“文件到”,filezto)
#shutil.copy('C:\\Users\\mrdrj\\Desktop\\SJ\\NASB\\\'+newtracks,'D:\\Desktop\\pythonProject\\NASB\\'+ntsubfldrs+'\\\'+newtracks)

从您上次的评论中,我猜您从
电子表格中有一个(唱片集、曲目)列表,您正试图将其与
文件夹中某个唱片集的曲目列表相匹配:

folder = [
    "Track1.mp3",
    "Track2.mp3",
    "Track3.mp3",
    "Track4.mp3",
    "Track5.mp3",
    "Track5.mp3",
]
spreadsheet = [
    ( "NASB", "Track1.mp3" ),
    ( "NASB", "Track2.mp3" ),
    ( "NASB", "Track3.mp3" ),
    ( "NASB", "Track4.mp3" ),
    ( "NASB", "Track5.mp3" ),
    ( "NASB", "Track5.mp3" ),
    ( "NTSB", "Track1.mp3" ),
    ( "NTSB", "Track2.mp3" ),
    ( "NTSB", "Track3.mp3" ),
    ( "NTSB", "Track4.mp3" ),
    ( "NTSB", "Track5.mp3" ),
    ( "NTSB", "Track5.mp3" )
]
for album, track in spreadsheet:
    if album == 'NASB' and track in folder:
        print('%s %s' % ('Yes', track))
    else:
        print('%s %s' % ('No', track))
with将为您提供以下输出:

Yes Track1.mp3
Yes Track2.mp3
Yes Track3.mp3
Yes Track4.mp3
Yes Track5.mp3
Yes Track5.mp3
No Track1.mp3
No Track2.mp3
No Track3.mp3
No Track4.mp3
No Track5.mp3
No Track5.mp3

省略数据是完全可以的,但是使用'etc'意味着语法错误
ntsubfldrs==
是另一个语法错误。请更新您的示例,使其至少能够工作。您的硬编码输入,很好,现在可以告诉您获得和期望的输出(使用您的固定程序)。同样,这是python缩进的问题。在一行上使用函数而不是5来表示循环。在修复语法错误后,我只剩下“namererror:name'filezto'未定义”。你真的很难帮助你。谢谢你的编辑。运行时,循环匹配重复值首先是示例track1.mp3 track1.mp3,然后分割并执行track1.mp3 still和track2.mp3、track3.mp3等。我要查找的结果是将newtracks与filezto匹配,并检查唱片集是否为NASB,如果是,则将歌曲从列表复制到文件夹。我仍然是python新手,仍然在努力学习。有没有一个网站,解释一个缩进认为缩进是好的。谢谢。请用此信息更新您的问题。您所有的代码都有缩进的问题,所以这意味着我必须重新格式化才能运行它。为什么albm包含重复的值?谢谢。当用于albm时,在电子表格中跟踪:I get ValueError:要解压缩的值太多(预期为2)。我使用:spreadsheet=albm+title(电子表格列)来连接列表,并使用newtrack来连接文件夹中的歌曲,而albm.append(cb.value)和title.append(tlt.value+'.mp3')是使用的值。我不知道你也可以用这种方式使用for循环。我也在学习。谢谢,请用当前代码更新您的问题。如果您的电子表格有单独的值,请将它们分开,因为这通常更易于处理,仅在需要时连接。请参阅更新:对于albm,电子表格中的跟踪:如果albm='NASB',在NewTrack中的跟踪:打印('%s%s'('Yes',track)),其他:打印('%s%s'('No',track))我连接的原因是添加专辑和歌曲。title.append(tlt.value+'.mp3')spreadsheet=albm+titleWell,需要时听起来像这样。使用单一格式字符串可能更容易:'%s%s'(tlt.value,.mp3')或其他任何格式。祝你好运谢谢我检查了电子表格的长度,它远远超过了金额。因此,现在我正在寻找一种方法,将第1列(唱片集)和第14列(标题)组合起来,以获得相同的值。如电子表格列表示例。