Client/Python

파이썬의 자료형들 [리스트, 튜플, 딕셔너리, 집합] 1.리스트

Ardmos :) 2017. 3. 24. 15:46

파이썬에서 여러개의 값들을 묶어서 사용할 때 쓸 수 있는 방법들이 몇가지가 있는데, 


이들을 몇가지 기준으로 구분해볼수 있다.


1.순서가 있는가 

yes : 리스트, 튜플

no : 딕셔너리, 집합


2.수정이 가능한가

yes : 리스트, 집합

no: 튜플


(딕셔너리는 key와 value값으로 이루어져있어서 key값은 수정 불가능한 값으로 이루어지만 value값은 수정이 가능한 값들로 이루어진다)





기본적인 List의 형태


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


리스트에서는 여러가지 편리한 함수와 기능들을 사용해 원하는대로 값을 얻어올수가 있다.

예를들어, 위 리스트에서


list[0] 이라고 하면 기타 다른 언어에서의 배열처럼 0번째. 즉 첫번째 요소값인 숫자 1을 얻게된다.


=> 1

 


배열에서처럼 이중 삼중 리스트를 만드는 방법


list = [1, 2, 3, [4, 5, [6, 7]]]



list[3]

=> [4, 5, [6, 7]]


list[3][2]

=> [6, 7]


list[3][2][1]

=> 7



마이너스를 활용한 뒤쪽 순서에서부터의 접근


list = [1, 2, 3]


list[2]

=>3


list[-1]

=> 3


list[-2]

=> 2


list[-3]

=> 1


0과 -0은 같기 때문에 뒷부분 첫번째 요소가 -0이 아니라 -1부터 시작한다는 점을 주의해주면 된다.

이렇게 리스트의 요소 값을 찾아 얻어오는것을 리스트 인덱싱 이라고 한다.



리스트 슬라이싱


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


list[0:2]

=> [1, 2]


list[2:5]

=> [3, 4, 5]


list['입력 요소 이상': '입력 요소 직전까지']

이런식으로 사용해줄 수 있고 처음과 끝을 입력해주지 않아도 사용 가능하다.



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


list[:2]

=> [1, 2]


list[2:]

=> [3, 4, 5]


(처음부터 2 직전까지, 2부터 끝까지 슬라이싱해준것이다)



리스트에서 연산자의 사용


a = [1, 2, 3]

b = [4, 5, 6]


a + b

=> [1, 2, 3, 4, 5, 6]


b + a

=> [4, 5, 6, 1, 2, 3]


a * 2

=> [1, 2, 3, 1, 2, 3]


str(a) + 'hello'

=> [1, 2, 3]hello



리스트의 값의 수정


리스트의 값을 수정해줄때는 아래처럼 해줄수가 있는데, 둘의 차이를 기억해두는게 좋다.


a = [1, 2, 3, 4]


a[2] = ['a', 'b', 'c']

=> [1, 2, ['a', 'b', 'c'], 4]


와 


a[2:3] = ['a', 'b', 'c']

=> [1, 2, 'a', 'b', 'c', 4]


의 차이가 보이는가?



리스트의 요소의 삭제


를 삭제할 때는, 아래처럼 공백으로 바꿔주거나


a = [1, 2, 3, 4]

a[:3] = []

=> [4]


del 함수 또는 remove 함수를 사용해줄 수 있는데, del함수는 위치를 정확히 지정해주면 그 부분을 없애주는 방식이고 remove 함수는 remove('a')를 해주게되면 첫 번째 나오는 'a'를 하나 없애준다. 따라서 remove 함수를 쓸 때 지우고싶은 'a'가 여러개면 remove('a')를 여러번 해줘야한다.


a = [1, 2, 3, 4]

del a[1]

=> [1, 3, 4]


a = [1, 1, 1, 2, 3, 4]

a.remove(1)

=> [1, 1, 2, 3, 4,]







이 외에도 리스트의 마지막에 요소를 추가해주는 append(), 원하는 위치에 요소를 추가해주는 insert(), 순서대로 오름차순 정렬해주는 sort(), 리스트의 요소들을 역순으로 뒤집어주는 reverse(), 값을 입력하면 입력한 값의 위치를 알려주는 index(), 리스트의 요소를 리턴해주면서 그 요소를 삭제하는 pop(), 리스트에 포함된 요소의 개수를 세주는 count(), 리스트와 리스트를 더해주는 extend()함수가 있다.

728x90