Суммарный список элементов с использованием индекса списка

Я пытаюсь найти сумму площади кухни (18,0) и спальни (10,75).

# Create the areas list
 areas = ["hallway", 11.25, "kitchen", 18.0, "living room", 20.0, "bedroom", 
10.75, "bathroom", 9.50]

 # Sum of kitchen and bedroom area: eat_sleep_area
 eat_sleep_area = sum(areas[3],areas[-3])

 # Print the variable eat_sleep_area
 print(eat_sleep_area)

но когда я пытаюсь запустить код, он говорит следующее: TypeError: объект float не повторяется Также я заметил, что когда я использовал другие функции, такие как min, max, они отлично работают. кто-нибудь может объяснить мне причину этого?

Первый элемент sum должен быть повторяемым. Вы проезжаете поплавок. Вам нужно просто сложить их вместе.

kasravnd 24.12.2018 15:45

если вы хотите добавить две или более переменных, почему бы не использовать оператор + ?!

Foad S. Farimani 24.12.2018 15:48

Попробуйте использовать эти примеры областей_map = dict (zip (областей [:: 2], областей [1 :: 2])) eat_sleep_area = областей_map ['коридор'] + областей_map ['гостиная'] областей_tup = кортеж (zip (областей [: : 2], area [1 :: 2])) area_tup [3] [1] + area_tup [-3] [1]

frankegoesdown 24.12.2018 15:52
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
3
4 942
5

Ответы 5

Для таких вещей вам нужно использовать словарь, а не список:

areas = {
    'hallway': 11.25,
    'kitchen': 18.0,
    'living room': 20.0,
    'bedroom': 10.75,
    'bathroom': 9.50,
}

Затем вы можете суммировать их так:

result = areas['kitchen'] + areas['bedroom']

Словари позволяют поиск по ключу. Проверить документы, чтобы узнать больше.

В Python для sum(iterable[, start]) в качестве первого аргумента требуется итерация. Подумайте о том, чтобы просто обернуть свои аргументы в список, например:

sum([areas[3],areas[-3]])

Лучше, если вы воспользуетесь словарем:

areas = ["hallway", 11.25, "kitchen", 18.0, "living room", 20.0, "bedroom", 10.75, "bathroom", 9.50]
areas = { name : measures for name, measures in zip(areas, areas[1:])}
result = sum(areas[name] for name in ('kitchen', 'bedroom'))
print(result)

Вывод

28.75

Функция sum () складывает начало и элементы данной итерации слева направо.

sum () Параметры iterable - итерабельный (список, кортеж, словарь и т. д.), сумма элемента которого должна быть найдена. Обычно элементы итерации должны быть числами. start (необязательно) - это значение добавляется к сумме элементов итерируемого. По умолчанию начальное значение равно 0 (если не указано).

float не повторяется

Может заменить sum оператором add

from operator import add
eat_sleep_area = add(areas[3],areas[-3]) # if you have only two entities to add otherwise use sum and pass an iterator

или с суммой

eat_sleep_area = add([areas[3],areas[-3]])

Другие вопросы по теме