-
Python's Sequential TypeComputer Science/Basic Programming with Python 2021. 11. 8. 22:34
Sequential Type
Sequential Type이란, 값들이 연속적으로 저장된 형태를 뜻하는데, string도 Sequential Type에 속한다. Python에서는 List와 Tuple이 있다. Sequential Type에서는 아래와 같은 연산들을 할 수 있다.
index: A[3]
slicing: A[3:6]
connect: +
repeat: *
find: in
length: len()
List
Python의 리스트는, 어떤 값들을 정렬해서 갖고있는 형태이다. 숫자나 string등 다양한 형태를 말그대로 리스트를 만들어서 저장하는것이다. 아래 예시를 보자.
a = [1, 2, 3, 4] print(a) [1, 2, 3, 4]
아래와같이 숫자를 갖고있는 리스트를 프린트 하면, 리스트가 프린트된다.
a = [1, 2, 3, 4] print(a[1]) 2
요소 하나를, index를 이용해서 추출할 수 있고,
a = [1, 2, 3, 4, 5, 6, 7, 8] print(a[1:-3]) [2, 3, 4, 5]
slice를 이용해서, 리스트에서 또다른 리스트를 추출해낼 수 있다.
Nested List
리스트 안에는 어떠한 값이든 들어갈 수 있는데, 리스트 또한 포함시킬 수 있다. 아래와 같이 리스트 안의 리스트를 접근할 수 있다.
b = [1, 2, 3, [1, 2, 3]] print(b[3]) [1, 2, 3] print(b[3][2]) 3
Update
리스트를 만든 후에, 수정도 가능하다. 인덱스를 이용해서 바꾸어주면 된다.
a = [1, 2, 3, 4, 5, 6, 7, 8] print(a[3]) 4 a[3] = 10 print(a[3]) 10 print(a) [1, 2, 3, 10, 5, 6, 7, 8]
위의 예시에서 처음 index 3을 프린트하면, 4를 프린트하지만, 10으로 바꿔준 후에는 10을 프린트한다. 리스트 전체를 프린트해보면, 10으로 바뀌어있는것도 확인할 수 있다.
functions
이 리스트를 다양하게 활용할 수 있는 함수들이 있다.
- list.append(value): 뒤에 값을 추가한다
-
a = [1, 2, 3, 4] a.append(5) print(a) [1, 2, 3, 4, 5]
-
- list.sort(): 정렬한다. reverse 옵션을 이용해서 descending으로 정렬도 가능하다.
-
a = [1, 5, 3, 2] print(a) [1, 5, 3, 2] a.sort() print(a) [1, 2, 3, 5] a.sort(reverse=True) print(a) [5, 3, 2, 1]
-
- sorted(list): 정렬을 하지만 메모리에서 변함은 없다.
-
a = [1, 5, 3, 2] print(a) [1, 5, 3, 2] sorted(a) print(a) [1, 5, 3, 2] print(sorted(a)) [1, 2, 3, 5] print(a) [1, 5, 3, 2] b = sorted(a) print(b) [1, 2, 3, 5]
-
- list.reverse(): 뒤집는다
-
a = [1, 0, 2, 3, 4] print(a) [1, 0, 2, 3, 4] a.reverse() print(a) [4, 3, 2, 0, 1] a.reverse() print(a) [1, 0, 2, 3, 4]
-
- list.index(value): 값이 있는 위치를 반환한다. 값이 없을경우 에러
-
a = [1, 3, 2, 5] print(a.index(1)) 0 print(a.index(3)) 1 print(a.index(2)) 2 print(a.index(5)) 3
-
- list.del(index): 인덱스에 위치한 값을 삭제한다.
-
a = [1, 3, 2, 5] print(a) [1, 3, 2, 5] del a[2] print(a) [1, 3, 5] del a[0] print(a) [3, 5]
-
- list.insert(index, value): 원하는 위치에 값을 넣는다
-
a = [1, 3, 2, 5] print(a) [1, 3, 2, 5] a.insert(0, 5) print(a) [5, 1, 3, 2, 5] a.insert(3, 7) print(a) [5, 1, 3, 7, 2, 5]
-
- list.remove(value)
-
animals = ['cat', 'dog', 'rabbit', 'guinea pig'] print(animals) ['cat', 'dog', 'rabbit', 'guinea pig'] animals.remove('rabbit') print(animals) ['cat', 'dog', 'guinea pig']
-
Tuple
튜플은 리스트와 비슷하지만 값을 변경할 수 없다(Immutable). 또한 [] 대신 {}을 사용하고, 1개의 값밖에 없다면 ,를 붙여야한다.
a = (1, 2, 3) a = (1,) a = 1, 2, 3 a = () a = tuple(1, 2, 3)
Set
set이란, 데이터를 순서 상관없이 저장하는 말그대로 "세트"인데, 중복을 허가하지 않는다. 사실 Sequencial(순서대로)는 아니다.
a = "Hello, world" print(set(a)) {'l', 'e', ' ', 'H', ',', 'w', 'r', 'o', 'd'} a = [31, 12, 2, 4, 4] print(a) [31, 12, 2, 4, 4] print(set(a)) {2, 12, 4, 31}
set에서는 아래 함수들을 사용할 수 있다.
- set.add(value): 값 추가
- set.clear(): 전체 제거
- set1.union(set2): 합집합
- set2.intersection(set2): 교집합
- set1.difference(set2): 차집합
- 이 이외에도 copy, discard, remove, pop, update, intersection_update, difference_update등이 있다.
Type Conversion
set(), list(), tuple()을 이용해서 타입을 바꿔줄수도 있다(참고).
# Python code to demonstrate Type conversion # using tuple(), set(), list() # initializing string pokemons = ['pikachu', 'Charmander', 'Squirtle', 'Mew'] # printing string converting to tuple pokemon_tuple = tuple(pokemons) print ("After converting list to tuple : ",end="") print (pokemon_tuple) After converting list to tuple : ('pikachu', 'Charmander', 'Squirtle', 'Mew') # printing string converting to set pokemon_set = set(pokemon_tuple) print ("After converting tuple to set : ",end="") print (pokemon_set) After converting tuple to set : {'Mew', 'pikachu', 'Squirtle', 'Charmander'} # printing string converting to list pokemon_list = list(pokemon_set) print ("After converting set to list : ",end="") print (pokemon_list) After converting set to list : ['Mew', 'pikachu', 'Squirtle', 'Charmander']
'Computer Science > Basic Programming with Python' 카테고리의 다른 글
Python Data Copy (0) 2021.11.09 Python Dictionary (0) 2021.11.09 Python's String (0) 2021.11.08 Python's Numbers (0) 2021.11.04 Python Basic (0) 2021.11.03 - list.append(value): 뒤에 값을 추가한다