집합 형태의 데이터 타입


짐합 형태의 데이터 타입

  1. list (순서 O, 집합)

  2. tuple (순서 O, 읽기 전용 집합)

  3. set (순서 X, 중복 X 집합)

  4. dict (key, value로 이루어진 사전형 집합)


1. list (순서가 있는 집합)

1-1. [ ] 형테로 표현

1
mylist = []
1
mylist
[]

1
type(mylist)
list

1
2
mylist = [1,2,3,4,5]
mylist
[1, 2, 3, 4, 5]

1
2
mylist2 = [5,4,3,2,1]   # 순서가 있다
mylist2
[5, 4, 3, 2, 1]

1-2. 값 추가 – “.append( )”

1
2
mylist = []
mylist
[]

1
2
mylist.append(1)
mylist
[1]

1
2
3
mylist.append(2)
mylist.append(3)
mylist
[1, 2, 3]

.append 함수 안에 1 argument만 들어갈 수 있다

1
2
mylist.append(4,5)
mylist
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-22-6f00703728b8> in <module>
----> 1 mylist.append(4,5)
      2 mylist


TypeError: append() takes exactly one argument (2 given)

1-3. 값 제거 – “.remove” / “.clear”

부분 제거 – ".remove"

1
mylist
[1, 2, 3]

1
2
mylist.remove(1)
mylist
[2, 3]

전부 제거 – ".clear"

1
mylist.clear()
1
mylist
[]

같은 값이 여러 개 포함되어 있을 때의 제거 순서

앞에서 부터 순차적으로 제거 됨

1
2
mylist = [1,2,3,1,2,3]
mylist
[1, 2, 3, 1, 2, 3]

1
2
mylist.remove(1)
mylist
[2, 3, 1, 2, 3]

1
2
mylist.remove(1)
mylist
[2, 3, 2, 3]

1-4. 인덱싱(Indexing) -> 색인

인덱스는 0번 부터 시작한다

1
mylist = [1,2,3,4]  # 인덱스: 0번, 1번, 2번, 3번
1
mylist[0]
1

1
mylist[3]
4

1
mylist[4]
---------------------------------------------------------------------------

IndexError                                Traceback (most recent call last)

<ipython-input-34-88b11041aa4f> in <module>
----> 1 mylist[4]


IndexError: list index out of range

인덱스가 음수일 경우: 뒤에서 부터 n번째

1
mylist[-1]
4

1-5. 인덱스로 접근하여 값 바꾸기

1
mylist
[1, 2, 3, 4]

1
mylist[0]
1

1
mylist[0] = 100
1
mylist
[100, 2, 3, 4]

1-6. 길이 파악하기

1
mylist
[100, 2, 3, 4]

1
len(mylist)  # length
4


2. tuple (순서가 있는 집합, 읽기 전용)

2-1. ( ) 형태로 표현

1
mytuple = (1,2,3,4,5)

2-2. 읽기 전용이라 “값 추가”, “값 제거”, “값 바꾸기” 모두 안됨

1
mytuple.append(1)    # 읽기 전용이라 값을 추가할 수 없음
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-45-d0f55ea1e3f6> in <module>
----> 1 mytuple.append(1)    # 읽기 전용이라 값을 추가할 수 없음


AttributeError: 'tuple' object has no attribute 'append'

1
mytuple.remove(1)
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-46-05a40423345b> in <module>
----> 1 mytuple.remove(1)


AttributeError: 'tuple' object has no attribute 'remove'

1
mytuple[0] = 100
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-48-4e527888818c> in <module>
----> 1 mytuple[0] = 100


TypeError: 'tuple' object does not support item assignment

2-3. 길이 파악하기

1
mytuple
(1, 2, 3, 4, 5)

1
len(mytuple)
5


3. set (순서 X, 중복 X)

3-1. set의 할당: set()

1
2
myset = set()
myset
set()

1
type(myset)
set

3-2. 값 추가 – ".add "

1
2
3
4
myset.add(1)
myset.add(2)
myset.add(3)
myset
{1, 2, 3}

1
2
3
4
5
6
7
myset.add(1)  
myset.add(2)
myset.add(3)
myset.add(1) # 중복된 값을 한번만 기록
myset.add(2)
myset.add(3)
myset
{1, 2, 3}

1
2
myset.add(4)
myset
{1, 2, 3, 4}

3-3. 값 제거 – “.remove” / “.clear”

부분 제거 – ".remove"

1
myset
{1, 2, 3, 4}

1
myset.remove(3)
1
myset
{1, 2, 4}

전부 제거 – ".clear"

1
mylist.clear()
1
mylist
[]


4. dict (사전형 집합, key와 value 쌍)

4-1. { } 형태로 표헌

1
mydict = dict()
1
mydict
{}

1
type(mydict)
dict

4-2. 값 추가 (key와 value 모두 지정)

  • mydict [ " key " ] = value
  • key는 문자형 (str) / 숫자형 (int & float) 모두 가능
1
mydict["apple"] = 123

1
mydict
{'apple': 123}
1
mydict["apple"]
123

1
mydict[0] = 2

1
mydict
{'apple': 123, 0: 2}
1
mydict[0]
2

1
mydict[3.14] = 1

1
mydict
{'apple': 123, 0: 2, 3.14: 1}
1
mydict[3.14]
1

4-3. 값 바꾸기

새 값을 해당 key에 할당하기

1
mydict["apple"] = "hello"
1
mydict
{'apple': 'hello', 0: 2, 3.14: 1}

4-4. 값 제거 – “.pop” / “.clear”

부분 제거 – ".pop"

1
mydict.pop('apple')
'hello'
1
mydict
{0: 2, 3.14: 1}

1
mydict.pop(0)
2
1
mydict
{3.14: 1}

전부 제거 – ".clear"

1
mydict.clear()
1
mydict
{}

4-5. 길이 파악하기

1
2
3
mydict["apple"] = 123
mydict[0] = 2
mydict[3.14] = 1

1
mydict
{'apple': 'hello', 0: 2, 3.14: 1}

1
len(mydict)
3