Python 使用For循环创建数据并将数据添加到字典

Python 使用For循环创建数据并将数据添加到字典,python,python-2.7,for-loop,dictionary,Python,Python 2.7,For Loop,Dictionary,正在尝试使用rep:unencrypted_pdf key,value pairs创建字典。正在尝试字典理解方法,但它在“for”处给了我一个语法错误。我怎样才能纠正这个问题 file_dict = { for report in os.listdir(PATH): split = re.split("[_.]", unencrypted_pdf) rep = split[1] file_dict[rep] = unencrypted_pd

正在尝试使用rep:unencrypted_pdf key,value pairs创建字典。正在尝试字典理解方法,但它在“for”处给了我一个语法错误。我怎样才能纠正这个问题

file_dict = {
    for report in os.listdir(PATH):
        split = re.split("[_.]", unencrypted_pdf)
        rep = split[1]
        file_dict[rep] = unencrypted_pdf
}

您应该首先初始化一个字典,然后在该行之后您可以为它赋值。如下图所示:

file_dict = {}
for report in os.listdir(PATH):
    splitted = re.split("[_.]", unencrypted_pdf)
    rep = splitted[1]
    file_dict[rep] = unencrypted_pdf

file_dict={}
将初始化字典,然后您可以向其中添加值。当前语法错误,您不能将循环和分配的
放在花括号中。谢谢@vaultah我正在修改一些代码,显然误读了建议。这解决了我的问题。当我试图解释,如果你想使用,语法是不同的,这个问题就结束了@memoselyk所以我应该能够使用for循环来初始化并向字典中添加数据?@AlliDeacon,如果你的初始化代码适合一个表达式,你可以使用字典理解在一个快照中完成,比如
file\u dict={re.split([.]],report)[1]:在os.listdir(PATH)中为for report报告
但如果您的表达式变得过于复杂,无法理解,请使用下面答案中提到的方法。