developer tip

목록의 요소 합산

optionbox 2020. 12. 14. 08:05
반응형

목록의 요소 합산


다음은 내 코드입니다. 목록에서 정의되지 않은 요소 수를 합산해야합니다. 어떻게하나요?

l = raw_input()
l = l.split(' ')
l.pop(0)

내 입력 : 3 5 4 9입력 후을 통해 첫 번째 요소를 삭제 l.pop(0)합니다. .split(' ')내 목록 ['5', '4', '9']과 나는이 목록의 모든 요소를 요약해야합니다.

이 경우 합계는 18입니다. 요소 수는 정의되어 있지 않습니다.


sum () 내장을 사용하여 목록의 숫자를 합산 할 수 있습니다 .

sum(your_list)

그것은 당신이 가진 수만큼의 항목을 합산합니다. 예:

my_list = range(10, 17)
my_list
[10, 11, 12, 13, 14, 15, 16]

sum(my_list)
91

특정 경우 :

데이터의 경우 숫자를 int첫 번째 로 변환 한 다음 숫자를 더합니다.

data = ['5', '4', '9']

sum(int(i) for i in data)
18

이것은 목록에서 정의되지 않은 수의 요소에 대해 작동 합니다 ( "숫자"인 한).

데이터가 문자열 형식 인 경우 @senderle의 주석 다시 변환에 감사드립니다.


>>> l = raw_input()
1 2 3 4 5 6 7 8 9 10
>>> l = l.split()
>>> l.pop(0)
'1'
>>> sum(map(int, l)) #or simply sum(int(x) for x in l) , you've to convert the elements to integer first, before applying sum()
54

Python iterable은 다음과 같이 합산 될 수 있습니다 [sum(range(10)[1:])]. 첫 번째 요소를 제외한 목록의 모든 요소를 ​​합산합니다.

>>> atuple = (1,2,3,4,5)
>>> sum(atuple)
15
>>> alist = [1,2,3,4,5]
>>> sum(alist)
15

를 사용 sum하여 목록의 요소를 합산 할 수 있지만 목록이에서 오는 raw_input경우 항목을 다음으로 int또는 float먼저 변환 할 수 있습니다 .

l = raw_input().split(' ')
sum(map(int, l))

감소 방법을 사용할 수도 있습니다.

>>> myList = [3, 5, 4, 9]
>>> myTotal = reduce(lambda x,y: x+y, myList)
>>> myTotal
21

또한 목록에서 다른 작업을 수행하도록 람다 함수를 수정할 수 있습니다.


map함수와 파이썬 내장 sum()함수를 사용할 수 있습니다 . 솔루션을 단순화합니다. 그리고 복잡성을 줄입니다.
a=map(int,raw_input().split())
sum(a)
끝난!


def sumoflist(l):    
    total = 0    
    for i in l:
        total +=i
    return total

참고 URL : https://stackoverflow.com/questions/11344827/summing-elements-in-a-list

반응형