Python 강좌 : 제 19강 - List Comprehension

   

리스트 간소화 (List Comprehension)


List한 줄로 생성하여 간소화할 수 있습니다. 조건문등을 추가하여 코드를 간략화 할 수 있습니다.


생성

L = [i**2 for i in range(10)] 

print(L)
결과
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]


[리스트 값 for 변수 in 범위]를 이용하여 범위만큼 반복하여 변수를 할당해 리스트에 리스트 값을 채웁니다.

range(10)0~9의 값을 지니고 있으며 i에서 각각의 값들을 호출합니다.

for문을 통해 반복하게 되어 리스트 값을 조건에 맞게 채우게됩니다.



조건

L1 = [i**2 for i in range(10) if (i>5)] 

print(L1)

L2 = [i**2 for i in range(10) if (i>5) and (i%2==0)] 3

print(L2)
결과
[36, 49, 64, 81]
[36, 64]


[리스트 값 for 변수 in 범위 if (조건)]을 이용하여 if (조건)을 추가해 조건식에 맞는 경우의 리스트를 생성할 수 있습니다.

if (i>5)6~9의 값을 지니고 있으며 i에서 각각의 값을 호출할 때 5부터 값을 호출합니다.

또한 andor 등을 포함하여 조건식을 추가할 수 있습니다.



리스트화

text = "YUNDAEHEE"

L1 = [i for i in text]

print(L1)

L2 = list(set([i for i in text]))

print(L2)
결과
[‘Y’, ‘U’, ‘N’, ‘D’, ‘A’, ‘E’, ‘H’, ‘E’, ‘E’]
[‘E’, ‘Y’, ‘N’, ‘D’, ‘A’, ‘H’, ‘U’]


List Comprehension을 이용할 때, 범위문자열로 사용하여 문자 값을 직접 할당할 수 있습니다.

또한 List Comprehension함수를 포함하여 작성할 수 있습니다.



Dictionary Comprehension

text = "cheese"

D = {i : text.count(i) for i in text}

print(D)
결과
{‘c’: 1, ‘h’: 1, ‘e’: 3, ‘s’: 1}


List 이외에도 Dictionary Comprehension를 이용하여 사전을 간소화할 수 있습니다.

{key : value for 변수 in 범위}를 이용하여 범위만큼 반복하여 변수를 할당해 key값과 value값을 채웁니다.

key에는 문자가 담겨있으며 value에는 문자의 갯수가 담겨있습니다.





도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post Python 강좌 : 제 20강 - 사용자 정의 함수 ⤧  Previous post Python 강좌 : 제 18강 - 예외 형식