본문 바로가기

코딩/파이썬

컬렉션과 반복문

리스트와 for문

문제1

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

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

score = [90, 30, 50, 60, 80, 70, 100, 40, 20, 10]
count = 0

for i in score:
	if i >= 60:
    	count += 1
 
print(f'60점 이상인 학생의 수는 {count}명 입니다')

 

60점 이상인 학생의 수는 5명 입니다.

 

딕셔너리와 for문

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

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

 

 no, userid, name, hp

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

for i in dict1.keys():
	print(i, end=' ')

 

 no, userid, name, hp

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

for i in dict1.values():
	print(i, end=' ')

 

 1 apple 김사과 010-1111-1111

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

for i in dict1:
	print(dict1[i], end=' ') # dic1['no']

 

 1 apple 김사과 010-1111-1111

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

for i in dict1():
	print(dict1.get(i), end=' ') # dict1.get('no')

 

1 apple 김사과 010-1111-1111

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

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

 

 ('no',1)

 ('userid', 'apple')

 ('name', '김사과')

 ('hp', '010-1111-1111')

 

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

for key, value in dict1.items() :
	print(key, value)

 

 

 no 1

 userid apple

 name 김사과

 hp 010-1111-1111

 

컴프리헨션

컴프리헨션(Comprehension)은 파이썬에서 리스트, 세트, 딕셔너리 등 컬렉션을 간단하게 생성하거나 변형하는 방법 중 하나이다. 반복문과 조건문을 사용하여 간결하게 컬렉션을 생성하는 기법.

 

 - 리스트 컴프리헨션

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

 

 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

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

 

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

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

 

[20, 40, 60, 80, 100, 120, 140, 160, 180, 200]

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

 

[5, 6, 6, 5]

result = [n for n in range(10) if n % 2 == 0]
print(result)

 

[0, 2, 4, 6, 8]

arr = [-1, 0, -4, 24, 5, -10, 2, 20]
# 양수는 리스트에 그대로 저장하고, 음수는 0으로 변환해서 저장
result = [n if n>0 else 0 for n in arr]
print(result)

 

 [0, 0, 0, 24, 5, 0, 2, 20]

arr = []

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

 

[1, 2, 2, 4, 3, 6]

 

arr = [i*j for i in range(1,4) for j in range(1,3)]
print(arr)

 

[1, 2, 2, 4, 3, 6]

 

- 세트 컴프리헨션

numbers = [1, 2, 3, 4, 5, 2, 3, 4]
unique_numbers = set(numbers)
print(unique_numbers)

 

 {1, 2, 3, 4, 5}

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

 

 {1, 2, 3, 4, 5}

 

- 딕셔너리 컴프리헨션

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

 

 {'apples' : 6, 'banana' : 6, 'orange' : 6}

'코딩 > 파이썬' 카테고리의 다른 글

변수의 범위  (0) 2024.03.19
사용자 정의 함수  (0) 2024.03.18
제어문 - 반복문  (0) 2024.03.15
제어문 - 조건문  (0) 2024.03.14
파이썬 연산자  (0) 2024.03.14