본문 바로가기

Python Basics

[패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 4 회차 미션

패스트캠퍼스 파이썬 웹개발 올인원 패키지 후기(4)

 

파이썬의 리스트, 튜플, 딕셔너리에 이어 셋 에 대한 학습을 진행하였습니다.

셋(Set, 집합) 또한 파이썬에서 아주 자주 사용되는 자료구조이기 때문에 중요합니다.

파이썬 인강 셋 후기 아래에 남겨드립니다!

 

셋(Set, 집합)

1. 집합(Sets) 기본 연산

a = set()
b = set([1, 2, 3, 4])
c = set([1, 4, 5, 6, 6])

print(type(a))
print(c) # 중복을 허용하지 않는다.(6이 하나만 나옴)

t = tuple(b)
print(t)
l = list(b)
print(l)

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print()
print(s1.intersection(s2)) # 교집합
print(s1 & s2) # 교집합
print()
print(s1 | s2) # 합집합
print(s1.union(s2)) # 합집합
print()
print(s1 - s2) # 차집합
print(s1.difference(s2)) # 차집합
print()

2. 추가, 제거

s3 = set([7, 8, 10, 15])

s3.add(18)
s3.add(7) # 이미있는 값은 변화 없음(중복 없음)
print(s3)

s3.remove(15)
print(s3)
print(type(s3))

<Output>

<class 'set'>
{1, 4, 5, 6}
(1, 2, 3, 4)
[1, 2, 3, 4]

{4, 5, 6}
{4, 5, 6}

{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}

{1, 2, 3}
{1, 2, 3}

{7, 8, 10, 15, 18}
{7, 8, 10, 18}
<class 'set'>

데이터 타입 Quiz

# 1. 아래 문자열의 길이를 구해보세요.
q1 = "dk2jd923i1jdk2jd93jfd92jd918943jfd8923"
print('1.', len(q1))
print()

# 2. print 함수를 사용해서 아래와 같이 출력해보세요.
#    apple;orange;banana;lemon
print('2.', 'apple;orange;banana;lemon')
print('2.', end=' ')
print('apple', 'orange', 'banana', 'lemon', sep=';')
print()

# 3. 화면에 * 기호 100개를 표시하세요.
print('3.', '*' * 100)
print()

# 4. 문자열 "30" 을 각각 정수형, 실수형, 복소수형, 문자형으로 변환해보세요.
num = '30'
print('4.', int(num), float(num), complex(num), num)
print()

# 5. 다음 문자열 "Niceman" 에서 "man" 문자열만 추출해보세요.
s = 'Niceman'
print('5.', s[4:])
i = s.index('man')
print('5.', s[i:i+3])
print()


# 6. 다음 문자열을 거꾸로 출력해보세요. : "Strawberry"
s = 'Strawberry'
print('6.', s[::-1])
print('6.', "".join(reversed(s)))
print()

# 7. 다음 문자열에서 '-'를 제거 후 출력하세요. : "010-7777-9999"
num = '010-7777-9999'
print('7.', num[0:3] + num[4:8] + num[9:13])
print('7.', num.replace('-', ''))

# 정규표현식 사용
import re
print('7.', re.sub('[^0-9]', '', num))
print()

 

<Output>

1. 38

2. apple;orange;banana;lemon
2. apple;orange;banana;lemon

3. ****************************************************************************************************

4. 30 30.0 (30+0j) 30

5. man
5. man

6. yrrebwartS
6. yrrebwartS

7. 01077779999
7. 01077779999
7. 01077779999

# 8. 다음 문자열(URL)에서 "http://" 부분을 제거 후 출력하세요. : "http://daum.net"
url = 'http://daum.net'
print('8.', url[7:])
print('8.', url.replace('http://', ''))
print()

# 9. 다음 문자열을 모두 대문자, 소문자로 각각 출력해보세요. : "NiceMan"
s = 'NiceMan'
print('9.', s.upper())
print('9.', s.lower())
print()


# 10. 다음 문자열을 슬라이싱을 이용해서 "cde"만 출력하세요. : "abcdefghijklmn"
s = 'abcdefghijklmn'
print('10.', s[2:5])
print()


# 11. 다음 리스트에서 "Apple" 항목만 삭제하세요. : ["Banana", "Apple", "Orange"]
fruits = ['Banana', 'Apple', 'Orange']
fruits.remove('Apple')
print('11.', fruits)
print()


# 12. 다음 튜플을 리스트로 변환하세요. : (1,2,3,4)
t = (1, 2, 3, 4)
print('12.', list(t))
print()


# 13. 다음 항목을 딕셔너리(dict)으로 선언해보세요. : <성인 - 100000 , 청소년 - 70000 , 아동 - 30000>
dic = {
    '성인': 100000,
    '청소년': 70000,
    '아동': 30000
    }
print('13.', dic)
print()

# 14. 13번 에서 선언한 dict 항목에 <소아 - 0> 항목을 추가해보세요.
dic['소아'] = 0
print('14.', dic)
print()


# 15. 13번에서 선언한 딕셔너리(dict)에서 Key 항목만 출력해보세요.
print('15.', list(dic.keys()))
print()
# 16. 13번에서 선언한 딕셔너리(dict)에서 value 항목만 출력해보세요.
print('16.', list(dic.values()))
print()

 

<Output>

8. daum.net
8. daum.net

9. NICEMAN
9. niceman

10. cde

11. ['Banana', 'Orange']

12. [1, 2, 3, 4]

13. {'성인': 100000, '청소년': 70000, '아동': 30000}

14. {'성인': 100000, '청소년': 70000, '아동': 30000, '소아': 0}

15. ['성인', '청소년', '아동', '소아']

16. [100000, 70000, 30000, 0]

 

셋에 대한 학습 후 파이썬의 자료구조 네가지에 대한 퀴즈로 복습까지 하였습니다.

리스트, 튜플, 딕셔너리, 셋(집합) 반드시 마스터하고 넘어가야 뒤에서 배우는 웹, 크롤링 등 수월하게 공부 할 수 있을 것 같네요!

 

자세한 내용은 아래 링크를 참고해 주세요!

 

https://bit.ly/2WG0IXN