1 리스트(Arraylist)
여러개의 데이터를 한번에 보관할 수 있는 자료형이다. C나 java에서 배열과 비슷하며 이들과는 다르게 한 리스트에 여러타입(문자열, 정수형, 실수형)으로 데이터를 저장할 수 있다.
사용방법은 ([])대괄호로 구분해준다.
1
2
3
4
5
6
|
>>> list1 = [1,2,3,4,5,6,7,8,9]
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list2 = ["python", 200, 3.141592] # 다른언어와는 다르게 여러타입 저장가능
>>> list2
['python', 200, 3.141592]
|
cs |
줄4를 보면 list2가 세개의 공간이 생기고 각 공간 안에 값이 들어가게 된다.
이 공간은 각각 고유한 index를 갖는데 0부터 시작한다.
2 다중 리스트 (2차원 리스트)
2차원 리스트는 리스트 안에 리스트가 들어간 형태이다.
1
2
3
4
5
|
>>> list8 = [1,2,3,["다다","라라"]]
>>> list8
[1, 2, 3, ['다다', '라라']]
>>> list8[3][0]
'다다'
|
cs |
list8의 데이터는 큰공간이 네개가 생기고 첫번째부터 세번째 공간에 1,2,3, 마지막 공간에 리스트(["다다","라라"])가 들어가는 것이다.
이 리스트가 들어간 곳은 또 "다다","라라"가 각각 들어갈 공간이 두개 형성된다.
이렇게 리스트는 공간을 만들고 공간안에 데이터가 저장되는 것이다.
3 리스트 index 활용하기
리스트의 수정, 변경, 출력을 원할 경우 index를 사용하면 된다. 사용방법은 다음과 같다.
리스트명[index]
1. 리스트 수정
다음은 리스트의 첫번째 데이터를 수정한 예제이다.
1
2
3
4
5
6
|
>>> list2 = ["python", 200, 3.141592]
>>> list2[0] = "java" # 리스트 수정
>>> list2
['java', 200, 3.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
[1, 2, 3, 1.1, 2.2, 3.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 1, in <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 |
'Python' 카테고리의 다른 글
[Python 기초] 파이썬 자료형 - 튜플(tuple) (0) | 2021.03.31 |
---|---|
[Python 기초] 파이썬 리스트 관련 함수 활용 (0) | 2021.03.31 |
[Python 기초] 파이썬 타입 변환, 형변환 (0) | 2021.03.30 |
[Python 기초] 파이썬 자료형 - 문자열 (문자열 슬라이싱, 문자열 함수) (0) | 2021.03.30 |
[Python 기초] 파이썬 타입 함수 type()와 자료형(Data Type) (0) | 2021.03.30 |
댓글