파이썬 리스트(List) #2 길이 확인, 요소 순회 및 처리

천둥상어

·

2023. 12. 4. 22:52

반응형

파이썬_리스트_썸네일

"파이썬 리스트를 순회하면서 요소를 처리 하는 방법입니다."

len(리스트) : 리스트 길이 가져오기

리스트의 요소수를 반환합니다.

number = [0,1,2,3,4,5]

print( len(number) ) # 6

 

for문을 사용하여 인덱싱으로 처리

다른 언어와 마찬가지로 for문으로 리스트를 순회하며 원하는 인덱싱의 요소를 처리 할 수 있습니다.

반복을 위한 리스트의 길이는 len() 사용하여 가져옵니다.

number = [1,2,3,4,5]

for index in range(len(number)):
  print(index) # 0 ... 4 까지 출력
  number[index ] += 1 # 1씩 증가

print(number) # [2,3,4,5,6]

map(처리를 하는 함수, 리스트) : 리스트를 차례로 함수 처리

map()은 리스트를 차례대로 지정한 함수를 통해 동일한 처리를 할 때 사용합니다.

아래 코드는 number의 요소를 차례로 함수 testFnc에 넘겨서 '짝수' ,'홀수' 여부를 돌려주고 있습니다.

number = [1,2,3,4,5]

def testFnc(x):
	if x % 2 == 0 :
		return '짝'
	else :
		return '홀'
        
result = list(map(testFnc,number))
print(result) # ['홀', '짝', '홀', '짝', '홀']

map() 사용시 주의할 점은 요소 전체에 동일한 처리를 한다는 것입니다.

리스트의 길이가 5라면 결과값의 길이도 5개가 반환됩니다.

짝수만 반환하도록 코드를 수정하고 출력하면 결과는 다음과 같습니다.

number = [1,2,3,4,5]

def testFnc(x):
	if x % 2 == 0 :
		return '짝'
        
result = list(map(testFnc,number))
print(result) # [None, '짝', None, '짝', None]

map()은 어떠한 조건에도 부합하지 않는 요소는 None 을 반환합니다.

홀수일 경우 리턴 처리를 하지 않아도 None이 리턴되어 반환되는 것을 확인할 수 있습니다.

만약 원하는 조건만 리턴 받고 싶다면 map() 아닌 filter()를 사용해야 합니다.

 

filter(요소를 고르는 함수, 리스트)

filter()는 조건에 맞는 요소만 추출하여 반환 합니다.

number = [1,2,3,4,5]

def testFnc(x):
	if x % 2 == 0 :
		return '짝'
        
result = list(filter(testFnc,number))
print(result) # [2, 4]

filter()map()과는 다르게 조건에 부합하는 요소만 모아서 반환을 합니다.

이점이 filter()map()의 차이 입니다.

반응형