Python

파이썬 기초 3 - Comprehenshion

retill28 2024. 7. 5. 02:21

[1] List Comprehenshion

  • 리스트 안에 for문을 포함하여 한 줄로 편하게 코드를 작성할 수 있게 하는 문법.
  • 형식  :  [표현식 for 항목 in 반복가능객체 if 조건문]
  • 예문
ls = []
for i in range(1, 5):
    ls.append(i)
print(ls)
ls = []
for i in range(1, 5):
    if i % 2 == 0:
        ls.append(i)
print(ls)
words = ["apple", "banana", "cherry"]
lengths = []
for word in words :
  lengths.append(len(word))
print(lengths)
ls = [i for i in range(1,5)]
print(ls)
ls = [i for i in range(1,5) if i % 2 == 0]
print(ls)
words = ["apple", "banana", "cherry"]
lengths = [len(word) for word in words]
print(lengths)
  • 예문2 - 리스트
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
first_column = [row[0] for row
in matrix]
print(first_column)
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
squared_matrix = [[element**2
for element in row] for row in matrix]
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
even_elements = [element
for row in matrix for element in row
if element % 2 == 0]
matrix[i]들이 row에 들어가
for문 반복,
row리스트의
첫번째 항이 output.
matrix의 각 항을 하나씩 뽑아
row에 넣고, row에서도 각 항을
하나씩 뽑아 element에 넣어서
2중 반복문. 
squared_matrix 에는
element의 제곱을 넣는다
오른쪽과 똑같은 2중 반복문. 
단 element 가 짝수인 경우에만 
even_elements 리스트에 포함
결과

[1, 4, 7]
결과

[[1, 4, 9], [16, 25, 36], [49, 64, 81]]
결과 

[2, 4, 6, 8]

 

 

 

[2] Dict Comprehenshion

  • 리스트와 마찬가지로 딕셔너리로 for문을 포함하여 한 줄로 편하게 코드를 작성할 수 있게 한 것.
  • 형식  :  [표현식 for 항목 in 반복가능객체 if 조건문]
  • 예문 - 좌우 코드들은 각각 같은 코드이다. 
    오른쪽 코드를 Comprehenshion으로 표현하면 한줄로 간단하게 바뀐다. 
names = ['Merry','John','Chris']
num = [1,2,3]

dic = {names[i]:num[i] for i in range(len(names))}
names = ['Merry','John','Chris']
num = [1,2,3]

dic1 = {}
for i in range(len(names)):
    dic1[names[i]] = num[i]
names = ['Merry','John','Chris']
num = [1,2,3]

dic = {k:v for k, v in zip(names, num)}
names = ['Merry','John','Chris']
num = [1,2,3]
dic1 = {}
for k, v in list(zip(names, num)):
    dic1[k] = v
names = ['Merry','John','Chris']
num = [1,2,3]

dic = {k:v*5 for k, v in zip(names, num) if v % 2 == 1}
 
names = ['Merry','John','Chris']
num = [1,2,3]

dic1 = {}
for k, v in list(zip(names, num)):
    if v % 2 == 1:
        dic1[k] = v*5

 

 

 

 

'Python' 카테고리의 다른 글

dataframe 1 - 생성, 조회, 추출  (0) 2024.07.05
파이썬 기초 5- 라이브러리  (0) 2024.07.05
파이썬 기초 4 - 함수와 예외처리  (0) 2024.07.05
파이썬 기초 2 - 제어문  (0) 2024.07.05
파이썬 기초 1 - 자료형  (2) 2024.07.05