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)