Как суммировать определенные числа в списке - PullRequest
2 голосов
/ 21 января 2020

Интересно, как суммировать только числа с плавающей точкой в ​​этом списке,

list = ['abc', 3.0, 2.0, 2.0, 0.0, 1.0, 0.0, 0.0]

Я не могу найти, как исключить первую строку. Я хотел бы сделать что-то с

range(1, len(list))

, так как он должен будет работать со списками с большей длиной, может быть, что-то похожее на это с тем же эффектом? Для python 3

Ответы [ 2 ]

2 голосов
/ 21 января 2020

Вы можете использовать генератор в sum() и isinstance(), чтобы проверить, является ли что-то поплавком.

>>> lst = ['abc', 3.0, 2.0, 2.0, 0.0, 1.0, 0.0, 0.0]
>>> sum(x for x in lst if isinstance(x, float))
8.0

Обратите внимание, что вы не должны использовать list в качестве имени переменной, поскольку оно будет перезаписывать встроенный класс list.

1 голос
/ 21 января 2020
my_list = ['abc', 3.0, 2.0, 2.0, 0.0, 1.0, 0.0, 0.0]
sum = 0
for i in my_list:
    if type(i) is float:
        sum += i
print(sum)

В результате сумма составит 8,0

.
...