여러 자료형들을 순서를 두고(ordered) 요소의 변경이 가능한(mutable) 객체이다.
>>> fruits = ["apple", "banana", "grape"] >>> fruits[0] 'apple' >>> fruits[0] = "melon" >>> fruits ['melon', 'banana', 'grape']
위처럼 리스트의 인덱싱에 접근하여 해당 요소를 불러올 수 있다.
또한 list 관련 함수들(append
,remove
,insert
...등)을 사용하여 요소들을 수정할 수 있다.
튜플은 리스트와 비슷하게 순서를 갖고(ordered) 있지만, 요소의 변경이 불가능한(immutable) 객체이다.
>>> fruits = ("apple", "banana", "grape") >>> fruits[0] 'apple' >>> fruits[0] = "melon" Traceback (most recent call last): File "<pyshell#48>", line 1, in <module> fruits[0] = "melon" TypeError: 'tuple' object does not support item assignment
인덱싱에 접근하여 해당 요소를 불러올 수는 있지만 변경은 할 수 없다.
키(Key)와 값(Value)이 연관 배열(associative array) 되어있고 요소의 순서를 갖지 않는 객체(unordered)
>>> James = {'name':'James', 'age': 29, 'job': 'police'} >>> James[0] Traceback (most recent call last): File "<pyshell#57>", line 1, in <module> James[0] KeyError: 0 >>> James['age'] 29 >>> James['job'] = 'doctor' >>> James {'name': 'James', 'age': 29, 'job': 'doctor'}
순차적으로 접근하는 것이 아니라
key
에 접근하여value
를 얻는 것이 특징이다.
순서를 갖지 않는(unordered) 객체로 요소들의 중복을 허용하지 않는다.
>>> s1 = set([1,2,3]) >>> s2 = set('Hello') >>> s1 {1, 2, 3} >>> s2 {'l', 'H', 'e', 'o'}
Hello
에서 중복을 허용하지 않고 요소가 총 4개가 되는 것을 볼 수 있다.
그리고 집합은 교집합
차집합
합집합
을 연산으로 간단하게 나타낼 수 있다.
>>> s1 = set([1, 2, 3, 4, 5, 6]) >>> s2 = set([4, 5, 6, 7, 8, 9])
교집합
>>> s1 & s2 {4, 5, 6}
차집합
>> s2 - s1 {8, 9, 7}
합집합
>> s1 | s2 {1, 2, 3, 4, 5, 6, 7, 8, 9}
참조 : (https://wikidocs.net/1015)