12. 컬렉션 & 반복문

2024. 9. 26. 17:35파이썬(python)

1. 리스트 & for 문

1)
li = ['apple', 'banana', 'orange', 'melon']

for i in li:
  print(i, end=' ')
-->
apple banana orange melon


2)
score 리스트에 저장된 점수가 60점 이상인 갯수가 몇개인지 확인 하는 프로그램을 작성해보자

score = [90, 30, 50, 60, 80, 70, 100, 40, 20, 10]
print(score)

count = 0
for i in score:
  if i >= 60:
    count += 1

print(f'60점 이상인 사람은 {count}명입니다.')
-->

[90, 30, 50, 60, 80, 70, 100, 40, 20, 10]
60점 이상인 사람은 5명입니다.


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


1)
dict1 = {'no':1, 'userid' : 'apple', 'name':'김사과', 'hp':'010-111-1111'}
for i in dict1:
  print(i, end = ' ')  #키만 복사
dict1 = {'no':1, 'userid' : 'apple', 'name':'김사과', 'hp':'010-111-1111'}
print(dict1.keys())

for i in dict1.keys():
  print(i, end= ' ')
-->
no userid name hp dict_keys(['no', 'userid', 'name', 'hp'])
no userid name hp


2)
dict1 = {'no':1, 'userid' : 'apple', 'name':'김사과', 'hp':'010-111-1111'}
for i in dict1:
  print(dict1[i], end = ' ') #dict1['no'] = 1
-->
1 apple 김사과 010-111-1111


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

for i in dict1:
    print(dict1.get(i), end = ' ')
-->
apple 김사과 010-111-1111


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

for i in dict1.items():
  print(i)
-->
('no', 1)
('userid', 'apple')
('name', '김사과')
('hp', '010-111-1111')


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

for k,v in dict1.items():
  print(k,v)
-->
no 1
userid apple
name 김사과
hp 010-111-1111


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

dict1.items() #튜플을 보여줌
print(dict1.items())
-->

dict_items([('no', 1), ('userid', 'apple'), ('name', '김사과'), ('hp', '010-111-1111')])


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


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


1)
num = 10

result = [0 for i in range(num)]  ##열바퀴를 돌면서 0으로 10번 반환
print(result)
-->
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]


2)
num = 10

result = [i for i in range(num)]  ##열바퀴를 돌면서 0에서 9까지 반환
print(result)
-->
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]


3)
li1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
result = [num for num in li1]
print(result)
-->
[10,20,30,40,50,60,70,80,90,100]


4)
li1 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
result = [num*2 for num in li1]
print(result)
-->
[20, 40, 60, 80, 100, 120, 140, 160, 180, 200]


5)
li2 = ['apple', 'banana', 'orange', 'melon']
result = [len(str1) for str1 in li2]
print(result)
-->
[5, 6, 6, 5]


6)
result = [num for num in range(10) if num % 2 == 0]
print(result)
-->
[0,2,4,6,8]


7)
li3 = [-1, 0, -4, 24, 5, -10, 2, 20]
result = [num if num > 0 else 0 for num in li3]
print(result)
#li3이 num이 0보다 크면 num, 아니면 0
-->
[0, 0, 0, 24, 5, 0, 2, 20]


8)
li4 = []
for i in range(1, 4):   #1~3까지
  for j in range(1, 3):  #1에서 2까지
    li4.append(i * j)

print(li4)
-->
1 [1] [2]
2 [2] [4]
3 [3] [6]
[1, 2, 2, 4, 3, 6]


9)
li4 = [i*j for i in range(1,4) for j in range(1,3)]
print(li4)
-->
[1,2,2,4,3,6]


3-2.세트 컴프리헨션
* 세트 컴프리헨션은 새로운 세트를 생성하는데 사용합니다. 
* 기존 세트의 각 요소를 반복하면서 조건을 적용하여 새로운 세트를 생성 할 수 있습니다.

1)
num = [1, 2, 3, 4, 5, 2, 3, 4]
unique_num = set(num)
print(unique_num)
-->
{1, 2, 3, 4, 5}


2)
num = [1, 2, 3, 4, 5, 2, 3, 4]
unique_num = {x for x in num}
print(unique_num)
-->
{1, 2, 3, 4, 5}


3-3.딕셔너리 컴프리헨션
딕셔너리 컴프리헨션은 새로운 딕셔너리를 생성하는데 사용됩니다. 
기존 딕셔너리의 키와 값을 반복하면서 조건을 적용하여 새로운 딕셔너리를 생성할 수있습니다.
names = ['apple', 'banana', 'orange']
#{'apple': 5, 'banana': 6, 'orange' : 6}

name_lenghts = {name:len(name) for name in names}
print(name_lenghts)
-->
{'apple': 5, 'banana': 6, 'orange': 6}

 

728x90
LIST

'파이썬(python)' 카테고리의 다른 글

14. 변수의 범위  (2) 2024.09.27
13. 사용자 정의 함수  (2) 2024.09.26
11. 제어문-반복문  (3) 2024.09.26
10. 제어문-조건문  (2) 2024.09.25
9. 파이썬 연산자  (6) 2024.09.25