for문은 다양한 컬렉션(리스트, 튜플, 딕셔너리, 세트 등)과 함꼐 사용할 수 있다.
🖥️예제
li1 = ['apple', 'banana', 'orange', 'melon']
for i in li1:
print(i, end=' ')
i 에 객체가 담기게 된다.
# 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}명 입니다.')
for은 if문과 함께 사용할 수 있는데 위 예제는 score 리스트의 길이만큼 반복하며 점수가 60점 이상인 인원수를 구하는 예제이다.
🖥️예제
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
for i in dic1:
print(i)
여기서 i에는 키만 복사된다. 값을 뽑고싶으면 .values()메소드를 사용해야한다.
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
for i in dic1.values():
print(i)
dic1 = {'no':1, 'userid':'apple', 'name':'김사과', 'hp':'010-1111-1111'}
for i in dic1:
print(dic1[i])
values()보다 위 문법을 더 많이 사용한다. i에는 dic1의 키값이 담기게되는데 이걸 dic1[i]로 쓰게되면 dic1['no'] 이런식으로 사용하기 때문에 해당 키에 맞는 값을 출력할 수 있다.
- dic1.get(i) get() 메소드를 사용해서 가지고오는것도 가능하다.
.items() 메서드는 딕셔너리에서 사용되는 메서드입니다. 이 메서드는 딕셔너리의 키와 값을 쌍으로 하는 튜플들을 반환합니다. 일반적으로 이 메서드는 딕셔너리의 키와 값을 동시에 반복(iterate)하고자 할 때 사용됩니다.
🖥️예제
person = {'name': '김사과', 'age':20, 'city':'서울'}
for key, value in person.items():
print(key, ":", value)
컴프리헨션(Comprehension)은 파이썬에서 리스트, 세트, 딕셔너리 등의 컬렉션을 간단하게 생성하거나 변형하는 방법 중 하나입니다. 컴프리헨션은 반복문과 조건문을 사용하여 간결하게 컬렉션을 생성하는 기법으로, 코드를 더 간단하고 가독성 좋게 작성할 수 있도록 도와줍니다.
리스트 컴프리헨션은 새로운 리스트를 생성하는데 사용됩니다. 기존 리스트의 각 요소를 반복하면서 조건을 적용하여 새로운 리스트를 생성할 수 있습니다
🖥️예제
n = 10
result = [0 for i in range(n)]
print(result)
반복횟수만큼 result변수에 0을 담는 코드
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
result = [n*n for n in arr]
print(result)
arr = ['apple','banana','orange','melon']
result = [len(string) for string in arr]
print(result)
글자수를 다시 result라는 리스트 객체에 담아준다.
arr = [-1, 0, -4, 24, 5, -10, 2]
# list에 [0, 0, 0, 24, 5, 0, 2]
result = [n if n > 0 else 0 for n in arr] # else가 있을 경우 if 문을 for문 앞에 작성해야 오류가 나지 않는다.
print(result)
양수는 리스트에 그대로 저장하고, 음수는 0 으로 변환해서 저장하기
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)
다중for문 컴프리헨션 예제
🖥️예제
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 = ['apple', 'banana','orange']
name_lengths = {name: len(name) for name in names}
print(name_lengths)