[Python] 컬렉션과 반복문

개린이·2023년 9월 17일
0

Python

목록 보기
17/20
post-thumbnail

for문은 다양한 컬렉션(리스트, 튜플, 딕셔너리, 세트 등)과 함꼐 사용할 수 있다.

리스트와 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점 이상인 인원수를 구하는 예제이다.


딕셔너리와 for문

🖥️예제

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() 메소드를 사용해서 가지고오는것도 가능하다.

item() 메서드

.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)

0개의 댓글

관련 채용 정보