单个列表值对应的字典键?

时间:2017-05-01 20:29:03

标签: python list dictionary

我循环浏览文件夹,查找文件名,然后尝试将找到的文件名与字典中的值相关联。然后,我希望为每个文件获取字典值,并将其用于其他文件。

提取文件名时,它以列表形式出现。

下面的代码显示了我得到的确切内容。 '文件名'出现在[' 2_data']。

我需要找到此列表值的相应字典值。 " DATA2"

我该怎么做?

# dict
csvdict = ({"1_Data" : "data1",
            "_2_data" : "data2",})
# example name
nameData = 'C:/folder/1/2\3\3\CSV Files\\2_data.csv'


csvName = (re.findall('CSV Files[^\w]+([\w\d\s-]+)', nameData))

print(csvName)

当我尝试此代码时,出现TypeError: unhashable type: 'list'错误。我不知道如何将列表值转换为字典将读取的内容。

if csvName in csvdict:
    print(csvdict[csvName])

错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-71-86fc5d1ebca7> in <module>()
     22 #csvdict[fileName]
     23 #DICTIONARY ATTMEPT**********************************************************
---> 24 if csvName in csvdict:
     25     print(csvdict[csvName])
     26 

TypeError: unhashable type: 'list'

1 个答案:

答案 0 :(得分:1)

您不能将列表用作字典键(因为它们在错误消息状态下不可用)。

以下内容避免了这个问题:

if csvName[0] in csvdict:
    print(csvdict[csvName[0]])