Автоматическая сумма без необходимости повторного ввода списка разрешенных номеров чисел / int, разделенных пробелом - PullRequest
1 голос
/ 15 мая 2019

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

Я попытался адаптироваться (яновичок, делающий учебные пособия) некоторый код на этом сайте для ручного ввода целых чисел, который затем суммирует, но я хотел бы видеть с помощью простого использования цикла, что я могу вставить или скопировать числа в верхнем конце, а затем вычислить сумму вконец без необходимости вводить числа в какое-то поле.Я получаю следующий код, который я скопировал и добавил, просто изменив raw_input на input для Python 3, но он создал окно.Я попытался вручную определить числа сверху, но получил кучу ошибок.

>>>mylist = input("Enter a list of numbers, SEPERATED by WHITE SPACE(3 5 66 etc.): ")
# now you can use the split method of strings to get a list
>>>mylist = mylist.split() # splits on white space by default
# to split on commas -> mylist.split(",")

# mylist will now look something like. A list of strings.
['1', '44', '56', '2'] # depending on input of course

# so now you can do
>>>total = sum(int(i) for i in mylist)
# converting each string to an int individually while summing as you go

В последней строке выше написано "суммирование по ходу дела", но я хочу ввести данные один раз в начале, а невручную введите снова в какую-то коробку и затем в конце получите сумму.Я хочу сразу перейти к итоговой сумме без этого, чтобы ввести в поле.Я начал пытаться ввести список чисел, разделенных пробелами в виде строки, но ничего не нашел и допустил ошибки с функцией карты

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Вы можете использовать функцию «уменьшить», которая применяет указанную функцию ко всем элементам в списке.Кроме того, это быстрее.

    from functools import reduce
    import operator

    yourStr = "1 44 56 2"
    print( reduce(operator.add,[int(i) for i in yourStr.split()]) )
0 голосов
/ 15 мая 2019

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

Это делается с помощью mylist = [1, 44, 56, 2], где mylist - это переменная, которой присваивается list целых чисел [1, 44, 56, 2].

In [9]: mylist = [1, 44, 56, 2]                                                                                                                                                                         

In [10]: total = sum(i for i in mylist)                                                                                                                                                                 

In [11]: total                                                                                                                                                                                          
Out[11]: 103
...