Python-Type

3 minute read

Python Type

타입순서특징
ListO값 변경 가능
TupleO값 변경 불가능(List보다 빠르다)
SetX중복 불가
DictX{key:value}형식


List

여러 요소들을 갖는 집합으로 새로운요소를 추가하거나 갱신, 삭제 가능.
동적배열로서 자유롭게 확장 가능 및 요소 값 변경 가능
순서가 있으므로 Index로거 접근 가능
List Comprehension: 리스트의 […] 괄호 안에 for 루프를 사용하여 반복적으로 표현식(expression)을 실행해서 리스트 요소들을 정의하는 특별한 용법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#List
#List 선언
a=[1,2,3]
b=[10, a, 10.5, True, '문자열']

#List Indexing
print(a[0], a[1]) #1 2

#List Slicing
print(b[0:2], b[2], b[1][1], b[1][:3]) #[10, [1, 2, 3]] 10.5 2 [1, 2, 3]

#List 추가/삭제
family=["엄마","아빠","나"]
family.append("여동생") #추가
family.insert(0, "할아버지") #삽입
family.extend(["남동생", "이모", "고모"])
family+=["조카", "삼촌"]
family.remove("여동생") #삭제
family[1] = '엄마2' #Index로 접근 후 수정
del family[0]
print(family, " ", len(family)) #['엄마2', '아빠', '나', '남동생', '이모', '고모', '조카', '삼촌']   8

#List 검색
mylist = "This is a book That is a pencil".split()
i = mylist.index('book')  # i = 3 몇번째에 위치하는지
n = mylist.count('is')    # n = 2 is 가 몇개인지
print(i, n)

'''
List Comprehension
리스트의 [...] 괄호 안에 for 루프를 사용하여 반복적으로 표현식(expression)을 
실행해서 리스트 요소들을 정의하는 특별한 용법이 있는데, 이를 List Comprehension 이라 부른다. 
'''
list = [n ** 2 for n in range(10) if n % 3 == 0]
print(list)
'''
출력: [0, 9, 36, 81]
0부터 9까지 숫자들중 3으로 나눈 나머지가 0인 숫자에 대해 그 제곱에 대한 리스트를 구한 예이다.
'''


Tuple

여러 요소들을 갖는 집합으이나 새로운요소를 추가하거나 갱신, 삭제 불가능. 즉, 한번 결정된 요소를 변경할 수 없는 Immutable 데이터 타입
항상 고정된 요소값을 갖기를 원하거나 변경되지 말아야 하는 경우 사용
각 변수에 다른 변수를 할당할 수 있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#Tuple
#Tuple 선언
t=("a","b","c","d")
t="a","b","c","d"

#Tuple Indexing
print(t[1]) #b

#Tuple Slicing
print(t[0:3])#('a', 'b', 'c')

#Tuple 병합과 반복
# 병합
a = (1, 2)
b = (3, 4, 5)
c = a + b
print(c)   # (1, 2, 3, 4, 5)
 
# 반복
d = a * 3  # 혹은 "d = 3 * a" 도 동일
print(d)   # (1, 2, 1, 2, 1, 2)

#Tuple 변수 할장(각 요소를 다른 변수에 할당 가능)
name = ("John", "Kim")
print(name)
# 출력: ('John', 'Kim')
 
firstname, lastname = ("John", "Kim")
print(lastname, ",", firstname)
# 출력: Kim, John


Set

중복이 없는 요소들로만 구성된 집합 컬랙션
내부적으로 순서가 없기 때문에 Indexing 불가.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#Set
#Set 선언
a={1,2,2,3}
print(a, len(a)) #{1, 2, 3} 3

'''
Set Method
Union(): 두 튜플을 중복없이 합침
intersection(): 두 튜플 사이에 공통된 값을 추출
'''
b={3,4}
print(a.union(b)) #{1, 2, 3, 4}
print(a.intersection(b)) #{3}
print(a-b, a|b, a&b) #{1, 2} {1, 2, 3, 4} {3}

'''
Set 추가 삭제
add(): 요소를 추가
update(): 값을 업데이트, 기존의 값이 있으면 그냥 덮어쓴다.
discard(): 요소값을 삭제(요소값이 있으면 삭제하고, 없으면 그냥 무시한다.)
remove(): 요소값을 삭제(요소값이 없는데 삭제를 시도하면 에러가 발생)
'''
a.add(4) 
print(a) #{1, 2, 3, 4}

a.update({2,5,6}) #set
a.update((7,8)) #tuple
a.update([9,10]) #list
print(a) #{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

a.discard(2) 
a.remove(3)
print(a) #{1, 4, 5, 6, 7, 8, 9, 10}


Dict

{Key: Value}쌍을 요소로 갖는 컬랙션. Map의 형식과 같다.
Hash Table구조로 이루워져 있으므로 Key로 신속하게 Value를 찾을 수 있다.


keys(): dict_key객체를 리턴, values: dict_values객체를 리턴

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#Dict
#Dict선언
mydic=dict(k1=1, k2="kbs", k3=1.2)

#Dict 출력
dic={"파이썬":"뱀", "자바":"커피", "스프링":"용수철"}
print(dic) #{'파이썬': '뱀', '자바': '커피', '스프링': '용수철'}
#Dict는 순서가 없기 때문에 입력한 순서대로 출력되는 것은 아니다.
print(len(dic)) #3
print(dic['자바']) #커피

#Dict Method
print(dic.keys()) #dict_keys(['파이썬', '자바', '스프링'])
print(dic.values()) #dict_values(['뱀', '커피', '용수철'])

#Dict 추가,삭제
dic['오라클']="디비" 
print(dic) #{'파이썬': '뱀', '자바': '커피', '스프링': '용수철', '오라클': '디비'}
del dic["오라클"] #요소삭제
print(dic) #{'파이썬': '뱀', '자바': '커피', '스프링': '용수철'}
dic.clear() #전부 삭제
print(dic) #{}



내용참조:천프로 블로그
내용참조:예제로 배우는 Python 프로그래밍
내용참조:예제로 배우는 Python 프로그래밍
내용참조:예제로 배우는 Python 프로그래밍
참조:원본코드
코드에 문제가 있거나 궁금한 점이 있으면 wjddyd66@naver.com으로 Mail을 남겨주세요.

Categories:

Updated:

Leave a comment