본문 바로가기

Python 카테고리

Python 리스트(list) 자료형

list 자료형은 리스트명=[요소, 요소, 요소]로 되어 있습니다.

 

list자료형에는 숫자, 문자열이 들어갈 수 있습니다.

 

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

 

리스트는 0부터 시작하므로

 

>>> a[0]
1
>>> a[1]
2

 

이렇게 출력이 되고 

 

c처럼 되어있는 구조같은 경우는 c[3]을 선택하면 ['a' , 'b' , 'c']가 선택이 됩니다.

 

c[3]안에서 b를 찾고 싶다면

 

>>> c[3][1]
'b'

 

c[3]안에서 0부터 시작해 1번째로 나오는 b가 선택이 됩니다.

리스트 슬라이싱

리스트 슬라이싱은 리스트를 나누어 출력하게 됩니다. 예를 들어 python=["It","is","very","funny","."]로 친다면

 

very부터 .까지만 출력을 하고싶다. 하면

 

>>> python[2:]
['very','funny','.']

 

이렇게하면 나뉘어서 출력이 되고 뒤에 It is를 출력하고싶다면

 

>>> python[:2]
['It','is']

 

이렇게 하면 출력이 되지만 2의 자리를 차지하고 있는 very 자신은 출력되지 않습니다.

 

여기서 궁금한 점이 생긴다면 is부터 funny까지만 출력하고 싶다고 한다면 출력하고싶은 부분 : 끝내고싶은 부분으로

 

나누면됩니다.

 

>>> python[1:4]
['is','very','funny']

 

이렇게 하면 원하는 부분만 나눠서 따로 변수를 저장하거나 출력할 수 있습니다.

연산자

연산자는 더하기, 곱하기, 길이 구하기 정도 있습니다.

 

우선 더하기는 두 개의 리스트를 합쳐줍니다. 코드는 아래와 같습니다.

 

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

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

>>> c = a + b
>>> c

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

 

곱하기는 리스트를 계속해서 반복해줍니다. 코드는 아래와 같습니다.

 

>>> c=["a","b","c"]

>>> c * 3
['a','b','c','a','b','c','a','b','c']

 

마지막은 문자의 길이를 구합니다.

 

문자의 길이는 len()을 사용하여 길이를 구합니다. 코드는 아래와 같습니다.

 

>>> d=[1,3,5,2,8,1,5]

>>> len(d)
7

리스트 수정과 삭제

먼저 리스트 수정부터 하자면 리스트 수정은 자신이 고치고싶은 부분을 고칠 수 있습니다. 

 

a안에는 1,2,3,5가 있습니다. 여기에서 5를 4로 바꾸고 싶습니다. 그렇다면 코드는 아래와 같습니다.

 

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

 

첫번째는 요소는 무조건 0으로 시작하므로 3번째에 있는 5를 4로 바꾸어 출력한 것입니다.

 

리스트 삭제입니다.

 

이번엔 b안에 "G","o","p","o","d"가 있는데 p를 지우고 싶습니다. 그렇다면 코드는 아래와 같습니다.

 

>>> b=["G","o","p","o","d"]
>>> del b[2]
>>> b
['G','o','o','d']

 

위에서도 말했듯이 0부터 세기때문에 2번째자리의 p를 삭제합니다.

 

여기서 리스트 전체를 지우고 싶다면

 

>>> b=["G","o","p","o","d"]
>>> del b

 

이렇게 하면 리스트 b가 전체 지워집니다.

 

마지막으로 위에서 한 슬라이싱을 이용하여 G,o뒤로부터 삭제하고 싶다고 한다면 코드는 아래와 같습니다.

 

>>> b=["G","o","p","o","d"]
>>> del b[2:]
>>> b
['G','o']

 

함수

리스트와 관련된 함수를 보자면 append, sort, reverse, remove등이 있습니다.

append()

append()는 리스트 요소를 추가시킵니다. 1,2,3,5가 있는데 4를 넣고싶다고 생각을 합니다.

 

그렇다고 하면 코드는 아래와 같습니다.

 

>>> a=[1,2,3,5]
>>> a.append(4) #4가 추가됨
>>> a
[1,2,3,5,4]

 

이렇게 출력됩니다. 하지만 여기서 4를 5앞에 두고 싶습니다. 그렇다면 insert라는 함수를 추가로 사용해봅시다.

 

insert는 원하는 자리에 원하는 요소를 집어넣을 수 있습니다. 코드는 아래와 같습니다.

 

>>> a=[1,2,3,5]
>>> a.insert(3,4) 3 번째 자리에 4가 들어감
>>> a
[1,2,3,4,5]

pop()

집어넣는 함수가 있다면 꺼내는 함수도 있어야 하겠죠? pop()은 삭제하는 것과 비슷합니다. p라는 리스트에 4,5,6,7,7,8,9

 

의 요소가 있습니다. 여기서 7를 꺼내고 싶습니다. 코드는 아래와 같습니다. 

 

>>> p=[4,5,6,7,7,8,9]
>>> p.pop(3) #3번째에 있는 것
7
>>> p
[4,5,6,7,8,9]

 

pop()은 몇번째에서 빼낸 것이 무엇인지 출력이 되고 다시 리스트p를 출력을 하면 빼내진 것을 제외하고 출력이 됩니다.

 

sort(), reverse()

정말 불편한 상황이 있습니다. 정리가 되어지지 않은 것이죠. a라는 리스트에 1부터9까지 있지만 그 요소들은 뒤죽박죽

 

섞여있습니다. 이것을 오름차순으로 재배치해주는 함수가 sort()입니다. 코드는 아래와 같습니다.

 

>>> a=[5,7,4,2,6,9,8,1,3]
>>> a.sort()
>>> a
[1,2,3,4,5,6,7,8,9]

 

문자열 알파벳도 똑같습니다. 문자열 알파벳은 대문자가 우선적이고 대문자보다는 특수기호가 우선으로 정렬됩니다.

 

이번에는 뒤죽박죽은 아니지만 요소들이 거꾸로 뒤집혀 있습니다. 9,8,7....1처럼말이죠. 이것을 1,2,3...9로 만들고

 

싶습니다. 그럴 때 사용하는 함수가 reverse()입니다.  reverse()는 리스트안에 있는 요소들을 거꾸로 뒤집어 줍니다.

 

코드는 아래와 같습니다.

 

>>> r=[9,8,7,6,5,4,3,2,1]
>>> r.reverse()
>>> r
[1,2,3,4,5,6,7,8,9]

 

remove()

remove()는 말그대로 삭제입니다. 리스트h에 요소들이 적혀있습니다. 이 중에 지우고 싶은 것을 remove()에 적으면 적은

 

것은 삭제가 됩니다. 코드는 아래와 같습니다.

 

>>> h=["캡틴 아메리카", "아이언 맨", "스파이더 맨", "닥터 스트레인지"]
>>> h.remove("아이언 맨")
>>> h
['캡틴 아메리카', '스파이더 맨', '닥터 스트레인지']

 

만약 1,2,2,5,1에서 1을 삭제하려고 h.remove(1)을 한다면 앞에 있는 것 먼저 사라지게 되어 남는 것은 2,2,5,1이 됩니다.