Как мне добавить элементы набора и вывести их сумму? - PullRequest
0 голосов
/ 01 июня 2019

как мне добавить элементы набора и вывести их сумму

Я сделал это, преобразовав набор в список, любым другим способом без преобразования набора в список

a1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
x = 0
sum = 0
while x != 10:
    z = list(a1)[x]
    sum += z
    x += 1
    print(sum)


a1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
x = 0
sum = 0
while x != 10:
    z = a1[x]
    sum += z
    x += 1
    print(sum)

Traceback (последний вызов был последним): файл "C: /Users/Usman/AppData/Local/Programs/Python/Python37/ddd.py", строка 5, в z = (a1 [x]) TypeError: объект 'set' не подходит для подписки

Я ожидаю, что результат будет 55

Ответы [ 3 ]

2 голосов
/ 01 июня 2019
>>> a = set(range(1, 10+1)) # a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
>>> sum(a)
55
>>>

set итераций неупорядочены , и поэтому не имеют индекса . Это объясняет TypeError, который вы получаете.

1 голос
/ 01 июня 2019

Вы можете использовать функцию sum.

a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
print(sum(a))
0 голосов
/ 01 июня 2019

Использование sum отлично подходит для этого, как и в других ответах. Однако без использования sum OP, вероятно, пытался использовать подобную конструкцию, которая может быть полезна в контекстах, требующих других действий, а не только sum. поэтому я также размещаю это здесь:

>>> sum = 0
>>> for item in a1:
...     sum += item
... 
>>> print(sum)
55
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...