본문 바로가기
인공지능/파이썬 기초

컬렉션과 반복문 컴프리헨션

by hyunji00pj 2024. 9. 29.

KDT_4기 파이썬 기초 0925(3)

2024.09.25 수업 내용 복습일기 세번째

 

오늘은 컬렉션과 반복문을 함께 쓰는 법과 컴프리헨션에 대해 알아보자

 

1. 리스트와 for 문

li1 = ['apple','banana','orange','melon']

for i in li1:
  print(i, end =' ')

문제

score 리스트에 저장된 점수가 60점 이상인 갯수가 몇개인지 확인하는 프로그램을 작성해보자

  • score = [90,30,50,60,60,70,100,40,20,10]
score = [90,30,50,60,60,70,100,40,20,10]

high_score = 0

for i in score:
  if i >= 60:
    high_score += 1
print(high_score)

2. 딕셔너리와 for 문

 

dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}

for i in dic1:
  print(i, end = ' ') # 키만 복사

dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}

# print(dic1.keys())

for i in dic1.keys():
  print(i, end = ' ') # 키만 복사

dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}

for i in dic1:
  print(dic1[i], end = ' ') # dic1['no] = 1 # 값만 복사

dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}

for i in dic1:
  print(dic1.get(i), end = ' ')

.items() 메서드는 딕셔너리에서 사용되는 메서드입니다. 이 메서드는 딕셔너리의 키와 값을 쌍으로 하는 튜플들을 반환합니다. 일반적으로 이 메서드는 딕셔너리의 키와 값을 동시에 반복(iterate)하고자 할 때 사용됩니다.

 

dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}

for i in dic1.items():
  print(i)

dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}

for k, v in dic1.items():
  print(k, v)

3. 컴프리헨션(Comprehension)

컴프리헨션은 파이썬에서 리스트, 세트, 딕셔너리 등의 컬렉션을 간단하게 생성하거나 변형하는 방법 중 하나입니다. 컴프리헨션은 반복문과 조건문을 사용하여 간결하게 컬렉션을 생성하는 기법으로, 코드를 더 간단하고 가독성 좋게 작성할 수 있도록 도와줍니다.

3-1. 리스트 컴프리헨션

리스트 컴프리헨션은 새로운 리스트를 생성하는데 사용됩니다. 기존 리스트의 각 요소를 반복하면서 조건을 적용하여 새로운 리스트를 생성할 수 있습니다.

 

num = 10
result = [0 for i in range(num)]
print(result)

num = 10
result = [i for i in range(num)]
print(result)

li1 = [10,20,30,40,50,60,70,80,90,100]
result = [ num for num in li1]
print(result)

li1 = [10,20,30,40,50,60,70,80,90,100]
result = [ num*2 for num in li1]
print(result)

li2 = ['apple','banana','orange','melon']
result = [len(str1) for str1 in li2]
print(result)

result = [ num for num in range(10) if num%2 == 0] #if num%2 == 0 오른쪽은 조건에 따라서 돌게 됨
print(result)

li3 = [-1,0,-4,24,5,-10,2,20]

#양수만 리스트에 그대로 저장하고, 음수는 0으로 변화되서 저장하기

result = [num if num > 0 else 0 for num in li3] # num if num > 0 else 0 왼쪽은 조건에 따라서 출력
print(result)

li4 = []

for i in range(1,4):
  for j in range(1,3):
    li4.append(i*j)

print(li4)

li4 = [ i*j for i in range(1,4) for j in range(1,3)] #중첩되는 for문은 옆에 이어서 적으면 된다
print(li4)

3-2. 세트 컴프리헨션

세트 컴프리헨션은 새로운 세트를 생성하는데 사용됩니다. 기존 세트의  요소를 반복하면서 조건을 적용하여 새로운 세트를 생성할  있습니다.

num = [1,2,3,4,5,2,3,4]
unique_num = set(num)
print(unique_num)

num = [1,2,3,4,5,2,3,4]
unique_num = { x for x in num}
print(unique_num)

3-3. 딕셔너리 컴프리헨션

딕셔너리 컴프리헨션은 새로운 딕셔너리를 생성하는데 사용됩니다. 기존 딕셔너리의 키와 값을 반복하면서 조건을 적용하여 새로운 딕셔너리를 생성할  있습니다.

names = ['apple','banana','orange']
#{'apple':5,'banana':5,'orange':5}
name_lengths = {name:len(name) for name in names}
print(name_lengths)

'인공지능 > 파이썬 기초' 카테고리의 다른 글

변수의 범위  (2) 2024.09.30
사용자 정의 함수 (feat.None)  (0) 2024.09.30
제어문-반복문  (0) 2024.09.29
제어문 - 조건문  (14) 2024.09.29
연산자  (0) 2024.09.29