본문 바로가기
Python

[Python 기초] 파이썬 자료형 - 리스트(Arraylist)와 인덱스(index)

by dev수니 2021. 3. 31.
반응형

 

 

 1  리스트(Arraylist)

 

 

여러개의 데이터를 한번에 보관할 수 있는 자료형이다. C나 java에서 배열과 비슷하며 이들과는 다르게 한 리스트에 여러타입(문자열, 정수형, 실수형)으로 데이터를 저장할 수 있다.

사용방법은 ([])대괄호로 구분해준다.

1
2
3
4
5
6
>>> list1 = [1,2,3,4,5,6,7,8,9]
>>> list1
[123456789]
>>> list2 = ["python"2003.141592]   # 다른언어와는 다르게 여러타입 저장가능
>>> list2
['python'2003.141592]
cs

줄4를 보면 list2가 세개의 공간이 생기고 각 공간 안에 값이 들어가게 된다.

이 공간은 각각 고유한 index를 갖는데 0부터 시작한다.

 

 

 

 

 

 

 

 2  다중 리스트 (2차원 리스트)

 

 

2차원 리스트는 리스트 안에 리스트가 들어간 형태이다. 

 

 

1
2
3
4
5
>>> list8 = [1,2,3,["다다","라라"]]
>>> list8
[123, ['다다''라라']]
>>> list8[3][0]
'다다'
cs

list8의 데이터는 큰공간이 네개가 생기고 첫번째부터 세번째 공간에 1,2,3, 마지막 공간에 리스트(["다다","라라"])가 들어가는 것이다. 

이 리스트가 들어간 곳은 또 "다다","라라"가 각각 들어갈 공간이 두개 형성된다.

이렇게 리스트는 공간을 만들고 공간안에 데이터가 저장되는 것이다.

 

 

 

 


 

 

 3  리스트 index 활용하기

 

 

리스트의 수정, 변경, 출력을 원할 경우 index를 사용하면 된다. 사용방법은 다음과 같다.

리스트명[index]

 

 

 

1. 리스트 수정

다음은 리스트의 첫번째 데이터를 수정한 예제이다.

1
2
3
4
5
6
>>> list2 = ["python"2003.141592]
>>> list2[0= "java" # 리스트 수정
>>> list2
['java'2003.141592]
>>> print(list2[0])
'java'
cs

 

 

 

2. 리스트 삭제

다음은 리스트의 세번째 데이터를 삭제한 예제이다. (del 명령어를 사용한다.)

1
2
3
>>> del list2[2]    # 리스트 삭제
>>> list2
['java'200]
cs

 

 

 

3. 리스트 연산(+,*)

 

   + : 리스트끼리 연결된다.

1
2
3
4
5
6
>>> lisr3 = [1,2,3]; list4 = [4,5,6]
>>> list3 = [1,2,3]; list4 = [4,5,6]
>>> list5 = ["홍길동""성춘향""임꺽정"]; list6 = [1.1,2.2,3.3]
>>> list7 = list3 + list6
>>> list7
[1231.12.23.3]
cs

list7을 보면 list3과 list6이 연결된 것을 볼 수 있다.

 

 

   * : 리스트를 정수만큼 반복한다.

1
2
3
4
5
6
7
8
9
10
11
>>> list5 * 3
['홍길동''성춘향''임꺽정''홍길동''성춘향''임꺽정''홍길동''성춘향''임꺽정']
>>> list5 * list 4  
SyntaxError: invalid syntax
# list끼리 곱할 수 없다.
>>> list5 * 1.1
Traceback (most recent call last):
  File "<pyshell#51>", line 1in <module>
    list5 * 1.1
TypeError: can't multiply sequence by non-int of type 'float'
# 실수는 곱할 수 없다.
cs

줄1을 보면 기존의 list5 = ["홍길동""성춘향""임꺽정"]; 에서

list5 * 3 을 해주어 결과가 줄2와 같이 나타나는 것을 볼 수 있다.

 

그리고 줄3을 보면 리스트와 리스트를 곱했을 때 SyntaxError가 나는 것을 볼 수 있다.

또 줄6에 리스트와 실수를 곱했을 때 TypeError가 나는 것을 볼 수 있다.

 

따라서 리스트의 *연산은 정수만 가능하며 리스트와 리스트를 곱하거나 실수를 곱할 수 없는 것을 알 수 있다.

 

 

 

 

 

 

3. 리스트 슬라이싱

 

문자열과 마찬가지로 리스트도 슬라이싱이 가능하다.

사용방법은 리스트명[시작index:끝index+1]이다.

다음예제를 보자.

1
2
3
4
5
6
7
>>> list1 = ["python","java","c","c++"]
>>> list2 = list1[0:2]
>>> list2
['python''java']
>>> list3 = list1[2:]
>>> list3
['c''c++']
cs

줄5 처럼 리스트 슬라이싱 또한 시작하는 곳과 끝나는 곳까지 자른다면 생략이 가능하다.

 

 

*** 추가로 파이썬은 역순으로 데이터를 출력, 변경할 수 있다.

역순으로 데이터를 사용하기 위해서는 -값으로 index번호를 지정하면 된다. (단, -1부터 시작해야함.)

0부터 양수로 시작하는 경우 왼쪽에서 오른쪽, -1부터 음수로 시작하는 경우 오른쪽에서 왼쪽으로 리스트를 읽는다.

보기는 다음과 같다.

1
2
3
4
5
>>> list3 = list1[2:]
>>> list3
['c''c++']
>>> list3[-1]    # 역순으로 리스트 출력
'c++'
cs

 

s = ["how", "to","into","show"]

위 리스트를 시각화하면 다음과 같다.

위와 같이 길이가 4인 리스트에서 첫번째 데이터의 인덱스번호는 0또는 -4, 두번째 데이터의 인덱스번호는 1또는 -3, ... 마지막 인덱스번호는 3또는 -1인것이다.

따라서 인덱스번호를 역순으로 사용하여 리스트 슬라이싱하면 다음과 같다.

1
2
3
>>> s = ["how","to","into","show"]
>>> s[-2:]    # 오른쪽에서 두번째 데이터인 "into"부터 끝까지
['into''show']
cs

 

 

 

 

 

 

반응형

댓글