У меня есть словарь с ключами и значениями под названием «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 выглядит так.
Мой ожидаемый результат будет содержать совпадающие слова с его значениями - ObardedData: {'1st': 'first', '4th': '4th' ....} Как мне решить эту проблему? пожалуйста помоги!! Я пробовал реализовать по этой ссылке здесь
Однако я не могу получить результат и понять ошибку.
Можете ли вы предоставить образец dictOfElements & listOfValues
Непонятно, что вы пытаетесь сделать. Вы пытаетесь искать ключи или значения?
@Rakesh, я сохранил изображения того, как выглядит мой словарь и listofValues. Я хочу получить результат с совпадающими словами из list_to_find со словарем и его значением. Например, если мой list_to_find содержит «1st», «4th», результатом должен быть список совпадающих слов с ключами и значениями: «1st: first, 4th: 4th».
Ваш словарь содержит много значений nan. Вы не можете получить соответствующий ключ, если у вас есть несколько ключей, которые имеют одинаковое значение в вашем словаре.
Ваш listOfValues - это список, и при его итерации с использованием цикла for ld уже содержит значение.
ld.get()
вызывается для строки, то есть значений list_to_find.
Отсюда ошибка AttributeError: объект 'str' не имеет атрибута 'get'
Как мне получить результат в виде совпадающих слов из list_to_find со словарем и его значением? Например, если мой list_to_find содержит «1st», «4th», результатом должен быть список совпадающих слов с ключами и значениями: «1st: first, 4th: 4th»
не могли бы вы добавить пример того, что вам нужно. Вы можете редактировать вопрос с этими данными
Из того, что вы разместили, не совсем понятно, чем вы хотите заниматься.
Этот код ниже присваивает значения из вашего первого словаря (с именем 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'}
Ваш код сбивает с толку. Каким должен быть результат?