Как разделить число со значениями по словарю

#python #list #dictionary

#python #Список #словарь

Вопрос:

Итак, я в тупике. Я хочу разделить длину списка на числовые значения в словаре.

 firstNum = 96
secondNum = 97

list = [1,2,3,4]
dictionary = {'a': 1, 'b': 2}

for x in range(0,13):
firstNum  = 1
secondNum  = 1

    for i in range(firstNum, secondNum):
        percent = len(list) / dictionary.get(chr(i))
        print(percent)
  

Но я получаю сообщение об ошибке:

Ошибка типа: неподдерживаемые типы операндов для /: ‘int’ и ‘NoneType’

Насколько я понимаю, функция .get возвращает значение, которое должно быть int? Спасибо за любую помощь!

Комментарии:

1. @idjaw Но разве это не вернет это значение для a amp; b?

2. Я неправильно написал то, что сказал. Использование chr вы должны использовать соответствующий код из таблицы ascii. Если вы хотели получить a , вам на самом деле нужно вызвать chr(97) . Я хотел сказать, что ваше использование неверно. Посмотрите на таблицу ascii здесь: ascii-code.com

3. Ваша формулировка очень запутанная. Вы хотите разделить len свой список на каждое число из словаря? т. е. len(list)/1 затем len(list)/2 и так далее?

4. Кроме того, безусловно, есть гораздо более простой способ сделать то, что вы делаете. Не могли бы вы, пожалуйста, добавить больше деталей к тому, что вы пытаетесь сделать? В чем значение firstNum и secondNum, почему вы делаете два цикла. Для чего резонирует первый цикл? Вы упомянули, что хотите разделить длину списка на каждое значение из словаря. Но, похоже, это всего лишь часть вашего общего кода.

5. @idjaw Спасибо за вашу помощь в том, как использовать таблицы chr и ascii. На мой первоначальный вопрос был дан ответ 🙂

Ответ №1:

Переход исключительно по названию — Перемещение списка по значениям в вашем словаре

все, что вам нужно, это :

 >>> l= [1,2,3,4]
>>> d = {'a': 1, 'b': 2}
>>> for i in d.values():
...     print len(l)/i
...
4
2
>>>
  

dictionary.values() предоставляет вам все значения в вашем словаре в виде списка