1. 리스트와 for 문
li1 = ['apple', 'banana', 'orange', 'melon']
for i in li1:
print(i, end=' ')
apple banana orange melon |
# score 리스트에 저장된 점수가 60점 이상인 학생이 몇명인지 확인
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명입니다 |
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=' ') # 키만 복사
no userid name hp no userid name hp |
ㄴ 기본적으로 딕셔너리의 key값이 i 에 대입되서 출력됩니다.
ㄴkey( ) 함수로도 키를 불러올 수 있습니다.
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
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=' ') # 값만 복사
1 apple 김사과 010-1111-1111 1 apple 김사과 010-1111-1111 1 apple 김사과 010-1111-1111 |
ㄴ 딕셔너리의 vaule 값 뽑기 위해서는
value( ), get( ) 함수를 사용하거나,
dic1[i]으로 호출합니다.
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
for key, value in dic1:
print(key, ":", value)
오류 |
ㄴdic1 에서 키값만 나오기 때문에 key, vaule로 나눌 수 없습니다.
person = {'name': '김사과', 'age': 20, 'city': '서울'}
for key, value in person.items():
print(key, ":", value)
name : 김사과 age : 20 city : 서울 |
.items() 메서드는 딕셔너리에서 사용되는 메서드입니다.
이 메서드는 딕셔너리의 키와 값을 쌍으로 하는 튜플들을 반환합니다.
일반적으로 이 메서드는 딕셔너리의 키와 값을 동시에 반복(iterate)하고자 할 때 사용됩니다.
3. 컴프리헨션(Comprehension)
컴프리헨션(Comprehension)은 for문으로 리스트, 세트, 딕셔너리 등의 컬렉션을 생성하거나 변형하는 방법입니다. 컴프리헨션은 반복문과 조건문을 사용하여 간결하게 컬렉션을 생성하는 기법으로, 코드를 더 간단하고 가독성 좋게 작성할 수 있도록 도와줍니다.
1. 리스트 컴프리헨션
리스트 컴프리헨션은 새로운 리스트를 생성하는데 사용됩니다.
기존 리스트의 각 요소를 반복하면서 조건을 적용하여 새로운 리스트를 생성합니다.
a = [ j for i in range(n) ]
* 0~n 만큼의 수를
* i에 넣고
* j를 출력
n = 10
result = [0 for i in range(n)] # n = 0~9 (10되기 전까지)
# i 에 넣기
# 0으로 출력
print(result)
result = [i for i in range(n)] # n = 0~9 (10되기 전까지)
# i 에로 넣기
# i 로 출력
print(result)
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
- 컴프리헨션 + list 문 (1)
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
result = [n for n in arr] # n = arr에서 하나씩 뽑아서
# n 로 넣기
# n 으로 출력
print(result)
result = [n*n for n in arr] # n = arr에서 하나씩 뽑아서
# n 로 넣기
# n*n으로 출력
print(result)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] |
- 컴프리헨션 + list 문 (2)
arr = ['apple', 'banana', 'orange', 'melon']
result = [len(string) for string in arr] # n = arr에서 하나씩 뽑아서
# string에 넣기
# string의 길이로 출력
print(result)
[5, 6, 6, 5] |
- 컴프리헨션 + if 문 (1)
result = [n for n in range(10) if n%2 == 0]
print(result)
# if 짝수라면
# 0-9
# n에 넣기
# n을 출력
[0, 2, 4, 6, 8] |
- 컴프리헨션 + if 문 (2)
# 양수는 리스트에 그대로 저장하고, 음수는 0으로 변환해서 저장하기
arr = [-1, 0, -4, 24, 5, -10, 2]
result = [n if n>0 else 0 for n in arr]
print(result)
# if 양수면 n 출력
# if 음수면
# arr에서 하나씩 뽑아서
# n에 넣기
# 0으로 출력
[0, 0, 0, 24, 5, 0, 2] |
- 컴프리헨션 + 이중 for문
arr = [ ]
for i in range(1, 4):
for j in range(1, 3):
arr.append(i * j)
print(arr)
arr = [i*j for i in range(1, 4) for j in range(1, 3)]
print(arr)
# i 1-3 (3바퀴)
# j 1-2 (2바퀴)
# 1 * 1 / 1 * 2
2 * 1 / 2 * 2
3 * 1 / 3 * 2
[1, 2, 2, 4, 3, 6] [1, 2, 2, 4, 3, 6] |
ㄴ두가지 다 동일한 결과가 나옵니다.
2. 세트 컴프리헨션
세트 컴프리헨션은 새로운 세트를 생성하는데 사용됩니다.
기존 세트의 각 요소를 반복하면서 조건을 적용하여 새로운 세트를 생성합니다.
numbers = [1, 2, 3, 4, 5, 2, 3, 4]
unique_numbers = set(numbers)
print(unique_numbers)
numbers = [1, 2, 3, 4, 5, 2, 3, 4]
unique_numbers = {x for x in numbers} # 중괄호로 만들어야 Set로 생성
print(unique_numbers)
{1, 2, 3, 4, 5} {1, 2, 3, 4, 5} |
3. 딕셔너리 컴프리헨션
딕셔너리 컴프리헨션은 새로운 딕셔너리를 생성하는데 사용됩니다.
기존 딕셔너리의 키와 값을 반복하면서 조건을 적용하여 새로운 딕셔너리를 생성합니다.
names = ["apple", "banana", "orange"]
name_lengths = {name: len(name) for name in names} # key : value 형태로 for문에 입력
print(name_lengths)
# name 뽑기
# name에 넣기
# <name:길이> 로 두가지로 뽑아서 딕셔너리 만들기
{'apple': 5, 'banana': 6, 'orange': 6} |
'Python > 개념' 카테고리의 다른 글
Day 6-1. 변수의 범위 (0) | 2024.03.15 |
---|---|
Day 5-2. 사용자 정의 함수 (0) | 2024.03.15 |
Day 4-5. 제어문 - 반복문 (0) | 2024.03.14 |
Day 4-4. 제어문 - 조건문 (0) | 2024.03.14 |
Day 4-3. 파이썬 연산자 (0) | 2024.03.14 |