본문 바로가기

Python

[Python] 14

Method 심화

1. Method - Set

- 집합이라는 특성에 맞게 몇 가지 메서드를 보유

(1) intersection(비교대상) - 교집합

- 나와 비교대상이 공통으로 가지고 있는 멤버를 구함

(ex) a.intersection(b) => a와 b의 공통적인 멤버를 구함

(2) union(비교대상) - 합집합

- 나와 비교대상을 합친 전체 멤버를 구한다. 중복이 있는 경우는 1개만

(3) difference(비교대상) - 차집합

- 내 멤버 중 비교대상에 있는 멤버는 뺀다.

(ex) a.difference(b)

2. Dictionary

(1) keys() : key 목록을 반환

(2) values() : value 목록을 반환

(3) items() : key, value 목록을 반환

(4) get(키값) : 키값에 해당하는 value 반환

(cf) d[키값], d.get[키값]은 차이가 있음

String 알아보기

- String(문자열)은 배열이 아니면서 배열같이 쓸 수 있다.

- len('문자열') = 문자 개수

- len(문자열의 배열) = 문자열의 개수

(ex) a = 'abcdefg'

a[0] = 'a', a[1] = 'b'

문자열[시작값:종료값:증감값] = 문자열의 시작값 인덱스로부터 종료값 인덱스 전까지 증감값만큼 증감하여 출력

집합체 복사하기

- a = b[1:5] => b의 인덱스1부터 인덱스4까지 복사

- c = d[1:] => d의 인덱스1부터 끝까지

- 집합은 순서라는 개념이 없기 때문에 전체 복사만 가능


실습(Method - Set)

1. intersection(), union(), difference()

a = {1, 2, 3, 4, 5}
b = {3, 4, 5, 6, 7}
c = a.intersection(b)
d = a.union(b)
e = a.difference(b)
print(c, d, e)

결과

 

 

실습(Method - Dictionary)

1. keys(), values(), items()

dic = {
    1:'one',
    'subject': ['science', 'korean'],
    '숫자': 1234
}

print(dic)
# dic[1:3]  # dictionary는 순서가 존재하지 않음
print(dic.keys())
print(type(dic.keys()))  # class는 dict_keys
print(dic.values())
print(dic.items())  # key와 value를 tuple로 반환

결과

2. get()

print(dic.get(1))
print(dic[1])  # print(dic.get(1))와 같은 겱과가 출력된다.

print(dic.get(8))  # 없는 key로 조회해도 None 반환
# print(dic[8])  # 오류 발생 : 없는 key로 조회하면 오류 발생
print(dic.get(8, '값 없음'))

결과

 

※ get()과 items()

person = {'name':'James', 'age':53}

# person에서 꺼내오면 key만 꺼내옴
for item in person:
    print(item, end=':')
    print(person.get(item))

for item in person.items():
    print('{}:{}'.format(item[0], item[1]))

결과

 

실습(String)

1. string

a = 'abcdefg'
print(a)
print(a[0], a[1], a[2], a[3], a[5])
print(a[1:3])  # a[1]부터 a[2]까지(a[3] 전까지) 출력
print(a[3:])  # a[3]부터 끝까지 출력
print(a[3::2])  # a[3]부터 끝까지 2씩 증가 출력(ex - 1, 3, 5, 7, 9, ...)

결과

 

​​

실습(Array Copy)

1. List

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = a[1:8]  # a[1]부터 a[7]까지(a[8] 전까지)
print("List :", b)

b = a[1:8:2]  # a[1]부터 a[7]까지 2씩 증가 출력
print("List :", b)

c = a[1:]  # a[1]부터 끝까지 출력
print("List :", c)

결과

 

2. Tuple

d = (1, 2, 3, 4, 5)
e = d[2:]  # d[2]부터 끝까지 출력
print("Tuple :", e)

결과

 

3. Set

 
f = {1, 2 ,3, 4, 5}
g = f  # Set은 전체 복사만 가능
print("Set :", g)  # 파이썬에서 자동으로 Set 형식으로 출력한다({})
print("Set :", list(g))  # List 형식으로 바꿔서 출력 가능하다([])

 

결과

 

'Python' 카테고리의 다른 글

[Python] 16  (0) 2021.12.06
[Python] 15  (0) 2021.12.05
[Python] 13  (0) 2021.12.03
[Python] 12  (0) 2021.12.01
[Python] 11  (0) 2021.11.28