목록의 요소 합산
다음은 내 코드입니다. 목록에서 정의되지 않은 요소 수를 합산해야합니다. 어떻게하나요?
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
'developer tip' 카테고리의 다른 글
Python, 기본 인증을 사용하는 HTTPS GET (0) | 2020.12.14 |
---|---|
텍스트 편집시 자동 초점 비활성화 (0) | 2020.12.14 |
프로세스 ID를 캡처하고 존재하는 경우 종료하는 쉘 스크립트 (0) | 2020.12.14 |
함수를`constexpr`로 선언하지 ** 않는 ** 이유는 무엇입니까? (0) | 2020.12.13 |
동의어 사전 데이터 찾기 (0) | 2020.12.13 |