我有一本字典,其中包含称为“ d”的键和值。我还有另一个字符串列表,必须从名为list_to_find的字典中查找值。这是我的代码。
def getKeysByValues(dictOfElements, listOfValues):
p = {}
for match in dictOfElements:
for ld in listOfValues:
p.setdefault(match, []).append(ld.get(match, 0))
return p
ObtainedData = getKeysByValues(d,list_to_find)
我得到的错误是 AttributeError:'str'对象没有属性'get'
我的字典看起来像这样 我的list_to_find也看起来像这样。
我的预期结果将包含其值匹配的单词-ObtainedData:{'1st':'first','4th':'fourth'....} 我该如何解决?请帮忙!! 我尝试使用此链接here
实施但是,我无法获得结果并理解错误。
答案 0 :(得分:1)
从您在此发布的内容中,您并不确定要做什么。
下面的代码将第一个词典(名为d)中的值分配给用作新词典中键的列表元素。所有列表元素必须包含在d中。
import numpy as np
d = {
'1st': ['first'],
'4th': ['fourth'],
'c': [np.nan],
'd': [np.nan],
'e': [np.nan],
'f': [np.nan],
'g': [np.nan]
}
l = ['1st', '4th']
new_d = {}
for i in l:
new_d[i] = ''.join(d[i])
print(new_d)
#{'1st': 'first', '4th': 'fourth'}
答案 1 :(得分:0)
您的'listOfValues'是一个列表,当使用for循环对其进行迭代时,'ld'已包含该值。
ld.get()
被调用为字符串,即list_to_find的值。
出现错误 AttributeError:'str'对象没有属性'get'