Как добавить вторые элементы кортежа, чьи первые элементы удовлетворяют условию? - PullRequest
1 голос
/ 02 апреля 2020

У меня большой список кортежей:

A = [(1, 2), (2, 4), (3, 5), ..., (11, 3), (23, 1), (29, 0)]

Теперь я хочу добавить те вторые элементы, первый элемент которых находится в заданном диапазоне c, [3, 11] , что должно дать 5 + ... + 3.

Вот мое решение:

xs, ys = [i[0] for i in A], [i[1] for i in A]
my_sum = 0
for i, j in zip(xs, ys):
    if 3<=i[0]<=11:
        my_sum += j

Однако, если возможно, мне нужен более короткий фрагмент, чем этот.

1 Ответ

2 голосов
/ 02 апреля 2020

print(sum([i[1] for i in A if 3 <= i[0] <= 11]))

это один вкладыш :)

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...