Как добавить строку чисел в Python

1

Например, если у меня введенная строка 345. Я хочу, чтобы они были добавлены 3 + 4 + 5. Я видел это здесь, прежде чем просто не могу найти его снова. Спасибо!

Теги:

5 ответов

5
Лучший ответ
s = raw_input()
print sum(int(c) for c in s.strip())
  • 0
    Это сработало и имеет смысл. Спасибо!
10

Может быть, моя схема пришла ко мне, но я бы использовал map здесь. map(int, s) говорит: "Возьмите эту последовательность, но со всеми ее элементами как целые числа". То есть, это то же самое, что и [int(x) for x in s], но быстрее читать/печатать.

>>> x = "345"
>>> sum(map(int, x))
12
  • 1
    +1. map в этом случае более питонна, чем выражение генератора.
  • 0
    Мне нужно это для работы с входом, а также.
Показать ещё 1 комментарий
6
data = "345"
print sum([int(x) for x in data])
  • 0
    +1, но работает и без квадратных скобок: sum(int(x) for x in data)
  • 0
    мне нужно это для работы с входом
1
In [4]: text='345'

In [5]: sum(int(char) for char in text)
Out[5]: 12

или если вы хотите строку 3+4+5:

In [8]: '+'.join(char for char in text)
Out[8]: '3+4+5'
  • 0
    Какую оболочку Python вы используете?
  • 0
    @drewk: ipython - ipython.scipy.org/moin
-2

Что сказал unutbu плюс, если число - это int, а не строка:

num = 345    
sum([int(x) for x in str(num)])

Ещё вопросы

Сообщество Overcoder
Наверх
Меню