У меня есть список, содержащий словари с буквами и частотами. В принципе, у меня есть 53 словаря для каждого алфавита (в нижнем и верхнем регистре) и пробела.Получение ключевых значений из списка словарей
adict = {'Letter':'a', 'Frequency':0}
bdict = {'Letter':'b', 'Frequency':0}
cdict = {'Letter':'c', 'Frequency':0}
Если вы введете слово, оно сканирует слово и обновит его соответствующую букву.
for ex in range(0, len(temp)):
if temp[count] == 'a': adict['Frequency']+=1
elif temp[count] == 'b': bdict['Frequency']+=1
elif temp[count] == 'c': cdict['Frequency']+=1
Например, я ввести слово «Привет», буквы Н, е, л, L, О детектировании и его частоты обновляется. Ненулевые частоты будут перенесены в новый список.
if adict['Frequency'] != 0 : newArr.append(adict)
if bdict['Frequency'] != 0 : newArr.append(bdict)
if cdict['Frequency'] != 0 : newArr.append(cdict)
После этого у меня был newArr, отсортированный по частоте и перенесенный в новый список под названием finalArr. Ниже приведен примерный список содержимого для слова «Hello»
{'Letter': 'H', 'Frequency': 1}
{'Letter': 'e', 'Frequency': 1}
{'Letter': 'o', 'Frequency': 1}
{'Letter': 'l', 'Frequency': 2}
Теперь я хочу, чтобы передать только ключевые значения для 2 отдельных списков; letterArr и numArr. Как мне это сделать? мой желаемый выход:
letterArr = [H,e,o,l]
numArr = [1,1,1,2]
У вас есть три отдельных словарей. Они никоим образом не связаны. Это означает, что между ними нет простого способа перебора. Почему каждый из ваших словарей содержит только два элемента? Почему бы не использовать один словарь, используя букву в качестве ключа и частоту в качестве значения? – Neel
Почему у вас есть 53 словаря в первую очередь? Вы можете сделать это как 'freq_dict = {'a': 0, 'b': 0, ...}'. Тогда было бы легко перенести частоты в список. – Selcuk
Просто мне легче понять. В основном мой последний список - это всего лишь список словарей. – Learner