(Python) 내장함수: enumerate, max, min, sum, zip

Kepler·2020년 2월 12일
0

1. enumerate()

  • 결과 : 객체에 counter를 더하고 돌려줌. 리턴값은 바로 액세스 할 수 없으므로, 한번 객체에 선언하면 tuple을 돌려준다.

  • 형식 :

enumerate(iterable, start = 0)

# iterable : iterable한 객체가 parameter로 온다
# start = 0 : 시작할 인덱스를 지정할 수 있다. 디폴트 값은 0

for문에 사용할 시에는 index, element 순으로 리턴된다.

grocery = ['bread', 'milk', 'butter']
for count, item in enumerate(grocery):
  print(count, item)

>>> 0 bread
    1 milk
    2 butter

2. max()

  • 결과 : 객체에서 가장 큰 항목 또는 두개 이상 arguments 중 가장 큰 것을 돌려줌.

  • 형식 :

  1. 다른 객체(정수등)에 사용할 경우
max(arg1, arg2, *args, key)

문자열의 경우, 문자열 코드값의 최대값을 리턴.

  1. iterable한 객체에 사용할 경우
max(iterable, *iterables, key, default)

# iterable : iterable한 객체
# *iterables : iterable한 객체의 수
# key : dictionary등 키를 이용하여 value의 max를 찾을때 사용
# default : iterable객체가 빈 경우 리턴할 값

딕셔너리의 경우, parameter로 key를 받아 value값이 큰 key를 다음과 같이 리턴할수 있다.

3. min()

  • 결과: max()와 비슷하나 최소값이 리턴됨.
  • 형식 : max() 참조

4. sum()

  • 결과 : 객체들의 합을 리턴.
  • 형식 :
sum(iterable, start)

# iterable: iterable 객체 중 숫자만 가능하다
# start: iterable 의 sum에 추가로 더해진다. 디폴트값은 0.


참고 : 문자열에 sequence를 연결하는 경우에는 .join(sequence)를 쓸 수 있다.

>>> ' - '.join('일월화수목금토')                        
'일 - 월 - 화 - 수 - 목 - 금 - 토'

>>> '.'.join('가난하다고 외로움을 모르겠는가'.split())  
'가난하다고.외로움을.모르겠는가'

>>> ''.join(['가난하다고', '외로움을', '모르겠는가']) 
'가난하다고외로움을모르겠는가'

예제출처 : https://python.bakyeono.net/chapter-5-2.html


5. zip()

  • 결과 :

    • iterable 객체의 요소를 모으는 iterator를 만듦. 리턴하는 객체는 zip object이므로, set,list와 같은 sequence 객체로 변환해야 요소들을 확인 가능.
    • parameter를 주지 않을 경우, 빈 리스트를 리턴함.
    • iterable 객체들의 길이가 다를 경우, 가장 짧은 객체를 기준으로 zip 객체가 만들어진다.
  • 형식 :

zip(*iterables)
number_list = [1, 2, 3]
str_list = ['one', 'two', 'three']

# No iterables are passed
result = zip()          # []

# Two iterables are passed
result = zip(number_list, str_list)
print(result)          # <zip object at 0x10a8a4b40>

# Converting itertor to set, set이므로 순서는 항상 랜덤.
result_set = set(result)  
print(result_set)    # {(2, 'two'), (3, 'three'), (1, 'one')}

"*" 키워드를 이용하여 upzip도 가능하다.

coordinate = ['x', 'y', 'z']
value = [3, 4, 5]

result = zip(coordinate, value)
result_list = list(result)
print(result_list)     #[('x':3),('y':4),('z':5)]

c, v =  zip(*result_list)
print(c)      # ('x','y','z')
print(v)      # (3,4,5)
profile
🔰

0개의 댓글