1. 리스트와 for 문

li1 = ['푸바오', '아이바오', '러바오', '루이바오', '후이바오']

for i in li1:
  print(i, end = " ")
더보기
푸바오 아이바오 러바오 루이바오 후이바오
# score 리스트에 저장된 점수가 60점 이상인 학생이 몇명인지 확인
score = [90, 30, 50, 60, 80, 70, 100, 40, 20, 10]
count = 0
for i in score:
  if i >= 60 :
    count = count + 1
    print(f'{i}점')
print(f'60점 이상인 학생의 수는 {count}명 입니다.')
더보기
90점
60점
80점
70점
100점
60점 이상인 학생의 수는 5명 입니다.

 

2. 딕셔너리와 for 문

dic1 = {'no':1, 'userid':'apple', 'name':'푸바오', 'hp':'010-1111-1111'}

for i in dic1:
    print(i, end=' ') # 키만 가져옴
    
for i in dic1.keys():
    print(i, end=' ') # 키만 가져옴

for i in dic1.values():
    print(i, end=' ') # 값만 가져옴

for i in dic1:
    print(dic1[i], end=' ') # 값만 가져옴

for i in dic1:
    print(dic1.get(i), end=' ') # 값만 가져옴

 

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

'''

person = {'name' : '푸바오', 'age' : 3, 'city' : '용인'}

for key, value in person.items():
  print(key, ':', value) #튜플을 key와 value로 나누었다고 할 수있음.
더보기
name : 푸바오
age : 3
city : 용인

 

 

 

3. 컴프리헨션(Comprehension)

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

 

 

 

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

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

 

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

result = [i for i in range(n)]
print(result)
#arr 리스트에서 n을 뽑아 n을 출력
더보기
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 

arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
result = [n for n in arr]
print(result)

result = [n*n for n in arr]
print(result)
#arr 리스트에서 n을 뽑아 n 요소들끼리 서로 곱하여 출력
더보기
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

 

arr = ['푸바오', '아이바오', '러바오', '죽순']
result = [len(string) for string in arr]
print(result)
#arr 리스트에서 string을 뽑아 string의 len출력
더보기
[3, 4, 3, 2]
result = [n for n in range(10) if  n%2 == 0]
print(result)
# range(10) 에서 만약 2로 나누었을때 0으로 떨어지는 값을 n으로 뽑아 출력
# 조건식 n%2 ==0 가 앞으로 갈 경우 False일때 값을 내보낼 수가 없음.
더보기
[0, 2, 4, 6, 8]

 

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

 

arr = []
for i in range(1, 4):
  for j in range(1,3):
    arr.append(f'{i} * {j} = {i*j}')
print(arr)
더보기
['1 * 1 = 1', '1 * 2 = 2', '2 * 1 = 2', '2 * 2 = 4', '3 * 1 = 3', '3 * 2 = 6']
# 1.아래의 list에서 양수만 추출한 뒤 새로운 리스트에 담기
number_list = [10, 20, 30, -20, -3, 50, -70]
result_list = []
result_list = [number for number in number_list if number >0]
print(result_list)
# 
# number을 가져올건데 in number_list에서 가져올 것이다.
# 양수만 가져올 조건은 맨 뒤 입력 if 만약에 number>0보다 큰가?


#2. n개의 0으로만 채워진 list
message = '생성할 리스트의 칸 수 입력 : '
n = int(input(message))
zero_list = [0 for _ in range(n)]
print(zero_list)

# zero_list = [0] * n

#3. 제곱의 결과가 10보다 큰 결과만 담은 list
number_list = [1, -2, 3, -4, 5]
sq_list = [number for number in number_list if number**2> 10]
print(sq_list)
# number_list에서 number에 값을 하나하나 담고 number를 제곱했을때 10보다 크면 그때 number을 가져옴


#4.  0~9까지 중 3의 배수만 담은 list
number_list4 = [num for num in range(10) if num % 3 == 0]
print(number_list4)
# range(10)에서 num에 값을 담고 num을 3으로 나누었을때 0 이 나오는 값을 num에 담음
'''
arr = []
for i in range(1, 4):
  for j in range(1,3):
    arr.append(f'{i} * {j} = {i*j}')
print(arr)
'''

# 위의 식을 리스트 컴프리헨션으로 만들기
result = [i*j for i in range(1, 4) for j in range(1, 3)]
print(result)
더보기
[1, 2, 2, 4, 3, 6]

 

 

 

3-2. 세트 컴프리헨션

numbers = [1, 2, 3, 4, 5, 2, 3, 4]
unique_numbers = {x for x in numbers} #세트는 중복 제거
print(unique_numbers)
더보기
{1, 2, 3, 4, 5}

 

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

names = ['푸바오', '아이바오', '러바오']
name_lengths = {name : len(name) for name in names} # 딕셔너리 키:값 처럼 출력 names에서 요소를 가져온 후 조건에 맞게 출력
print(name_lengths)
더보기
{'푸바오': 3, '아이바오': 4, '러바오': 3}

'컴퓨터 비전 > 파이썬 기초' 카테고리의 다른 글

13. 변수의 범위  (1) 2023.12.11
12. 사용자 정의 함수  (1) 2023.12.10
10. 제어문 - 반복문  (1) 2023.12.10
9. 제어문 - 조건문  (2) 2023.12.08
8. 파이썬 연산자  (2) 2023.12.08