티스토리 뷰
▶ 리스트 ( List )
리스트 자료형이란?
List명 = [요소1, 요소2, 요소3, ... ]
List = [1,2,3,4,5,6,7,8,9]
C나 Java에서는 List[] 이렇게 선언을 했지만 파이썬에서는 단순히 리스트명 만 사용해서 선언할 수 있다.
내가 리스트를 사용하면서 실수했던 부분이다.
▶ 여러가지 리스트 표현
비어 있는 리스트는 ' 리스트명 = list() ' 으로 생성할 수 있다.
# 비어 있는 리스트 생성
1) a = list()
2) a = []
# 숫자 리스트
num = [1,2,3,4,5]
# 문자열 리스트
String = ['Python', 'Java', 'C++']
# 숫자, 문자열 리스트
List = [0, 100, 'Python', 'Java']
# 요솟값이 리스트인 리스트
List = [0, 100, ['Python', 'Java']]
리스트 안에는 어떠한 자료형도 요솟값으로 사용할 수 있다.
▶ 리스트 index
문자열의 인덱스와 같다.
List = ['Python', 'Java', 1, 2, [3, 4]]
>>> List[0]
Python
>>> List[3]
2
리스트 인덱스 역시 0부터 시작한다.
index: 0 1 2 3 4
요소: Python Java 1 2 [3, 4]
위 리스트 List의 index에 따른 요솟값이다.
여기서 4번째 요소는 리스트 자료형이여서 그대로 나온다.
>>> List[4]
[3, 4]
>>> List[-1]
[3, 4]
>>> List[-1][0]
3
>>> List[-1][1]
4
리스트 List에 포함된 [3, 4] 리스트 안의 요솟값을 출력하려면 List[-1] 또는 List[4] 에서
List[ ][ ] 두 번째 대괄호에 해당 요솟값의 index를 넣어주면 된다.
* 삼중 리스트에서 인덱싱
List = ['Python', ['Java', 'Script'], ['a', 'b', ['c', 'd', 'e']]]
이러한 리스트가 있다면,
>>> List[0]
Python
>>> List[1]
['Java', 'Script']
>>> List[2]
['a', 'b', ['c', 'd', 'e']]
이렇게 출력될 수 있다. 그렇다면 List[2]의 'c' 와 'd' 를 출력하려면?
어렵지 않다. 이중 리스트와 같이 사용하면 된다.
>>> List[2][2][0]
c
>>> List[2][2][1]
d
▶ 리스트 슬라이싱
역시나 문자열의 슬라이싱과 같다.
파이썬에서 ' 문자열 슬라이싱 ' 기능 보고 놀랐었다.
리스트명 [ 시작 index : 끝 index ]
리스트명 [ 시작 index : ] # '시작 인덱스' 부터 마지막 요소까지
리스트명 [ : 끝 index ] # 첫 번째 요소부터 '끝 인덱스' 까지
끝 index는 여전히 포함하지 않는다. < 시작 index > ~ < 끝 index -1 > 까지 나타낸다고 보면 쉽다.
문자열 슬라이싱 예시 :
String = "I love Python. I also love Java."
>>> String[0:14]
I love Python.
>>> String[15:32]
I also love Java.
리스트 슬라이싱 예시 :
List = [a, b, c, d, e, f, g]
# 0 1 2 3 4 5 6
>>> List[0:3]
[a, b, c]
>>> List[:4]
[a, b, c, d]
>>> List[3:]
[d, e, f, g]
* 중첩 리스트에서 슬라이싱
List = [a, b, ['c', 'd', 'e'], f, g]
# 0 1 2 3 4
# 0 1 2
>>> List[1:4]
[b, ['c', 'd', 'e'], f]
>>> List[2][0:2]
['c','d']
C에서 이중 배열을 사용하는 방법과 비슷해서 금방 익숙해질 듯 싶다.
# 으로 주석처리 해둔 숫자가 각 리스트 인덱스 번호이다.
▶ 리스트 연산
▷▷ 더하기 (+)
여러 리스트를 합쳐 한 리스트로 표현하는 것이 파이썬에서는 무척이나 쉽다.
단지 (+) 기호만 사용하면 리스트를 합칠 수 있다.
리스트1 + 리스트2 = 리스트3 # (리스트1 요소 + 리스트2 요소)
A = [1,2]
B = [3,4,5]
>>> A + B
[1,2,3,4,5]
이렇게 리스트끼리 더하기(+) 기호를 사용해서 숫자끼리의 합이 아닌, 문자열 더하기와 같은 기능을 한다.
▷▷ 곱하기 (*)
곱하기(*) 기호를 사용하면, 리스트의 요소가 여러 번 반복되어 새로운 리스트를 만들 수 있다.
리스트1 * 3 = 리스트2 # [리스트1 요소, 리스트1 요소, 리스트1 요소]
A = [a, b, c]
>>> A * 3
[a, b, c, a, b, c, a, b, c] # 3번 반복
N번 곱하게 되면 이렇게 리스트의 요소를 N번 반복한다. 문자열 곱하기와 같은 기능을 한다.
▶ 리스트 길이
▷▷ len
len() 함수는 상당히 중요한 함수이다. 문자열, 리스트, 튜플, 딕셔너리 등에도 사용한다.
문자열 len함수 사용 예시 :
String = "Python is so easy."
# 123456789012345678
# 1
>>> len(String)
18
리스트 len함수 사용 예시 :
List = ['a', 'b', 'c', 'd', 'e']
# 1 2 3 4 5
>>> len(List)
5
List = ['a', 'b', [1, 2, 3], 'c', 'd', 'e']
# 1 2 3 4 5 6
>>> len(List)
6
중첩 리스트에서 리스트 안의 리스트는 리스트 하나 당 길이 1로 본다. (주의)
▶ 리스트 함수
▷▷ 수정 / 삭제
리스트 요솟값 수정은 단순히 해당 인덱스에 바꿀 값을 대입해주면 된다.
List = [0, 2, 4]
>>> List[1] = 100
#input
print(List)
#output
[0, 100, 4]
엄청 간단하다~!
▷▷ 수정 / 삭제
리스트 요소 삭제는 del() 함수를 이용하여 요소를 삭제할 수 있다.
del 리스트[인덱스]
del 리스트[슬라이싱]
List = [0, 2, 4]
>>> del List[1]
#input
print(List)
#output
[0,4]
del 리스트[N] 으로 사용하며, N번째 요솟값을 삭제하게 된다.
여기서 N에 들어가는 것은 index 뿐만 아니라, 리스트 슬라이싱 기법도 활용할 수 있다.
List = [0, 2, 4, 6, 8, 10]
# 0 1 2 3 4 5
>>> del List[1:4] # 1번 ~ 3번까지 삭제
# 남는 것 : 0, 4, 5번
#input
print(List)
#output
[0, 8, 10]
del 함수 이외에 리스트 요소 제거에는 remove 함수와 pop 함수가 있다.
함수 | 기능 |
del x[a] | 리스트 x의 a 번째 요소 삭제 |
remove(x) | 리스트에서 첫 번째로 나오는 x 를 삭제 |
pop() | 리스트의 맨 마지막 요소를 돌려주고 해당 요소 삭제 |
pop(a) | 리스트의 a 번째 요소를 돌려주고 해당 요소 삭제 |
▷▷ remove
리스트.remove(x)
remove 함수의 사용 기본 형태이다.
List = [1, 2, 1, 2, 3, 1]
>>> List.remove(1)
#input
print(List)
#output
[2, 1, 2, 3, 1]
1과 같은 요소를 리스트를 처음부터 보았을 때 첫 번째로 나오는 1을 삭제했다.
리스트 List에는 1이 List[0], List[2], List[5] 에 있었지만 첫 번째인 List[0]만 삭제됐다.
▷▷ pop
리스트.pop()
pop 함수의 사용 기본 형태이다.
List = [1, 2, 3]
>>> List.pop
3
#input
print(List)
#output
[1, 2]
push & pop 의 그 pop 인가.
pop 함수를 사용하여 마지막 요소를 끄집어 낸다. 마지막 요소를 돌려준 후 그 요소는 리스트에서 삭제가 되는 것을 볼 수 있다.
또는 pop() 함수 인수에 숫자를 넣어 해당 번째의 요소를 돌려준 후 리스트에서 삭제할 수 있다.
List = [1, 2, 3]
>>> List.pop(0)
1
#input
print(List)
#output
[2, 3]
함수 | 기능 |
append(x) | 리스트의 맨 마지막에 x 요소를 추가 |
sort() | 리스트의 요소를 숫자 또는 알파벳 순서대로 정렬 |
reverse() | 순서대로가 아닌, 해당 리스트를 마지막부터 역순으로 뒤집기 |
index(x) | 리스트에 x 값이 있다면 해당 x 의 위치 값을 반환 |
insert(a, b) | 리스트의 a 번째 위치에 b 를 삽입 |
count(x) | 리스트에 x가 몇 개 존재하는지 조사하여 개수 반환 |
extend(list) | 원래의 리스트에 list 리스트를 더하여 확장 더하기(+) 기능과 같음 |
▷▷ append
리스트.append(값)
List = [1, 2, 3, 4, 5]
List.append(6)
[1, 2, 3, 4, 5, 6]
List.append([7, 8, 9])
[1, 2, 3, 4, 5, 6, [7, 8, 9]]
값에는 숫자 뿐 아니라 리스트도 올 수 있다. 어떠한 자료형도 가능하다.
▷▷ sort
리스트.sort()
List = [1, 3, 2, 4]
List.sort()
[1, 2, 3, 4]
List = ['a', 'c', 'd', 'b']
List.sort()
[a, b, c, d]
빠르고 쉽게 리스트를 순서대로 배열할 수 있는 함수이다.
▷▷ reverse
리스트.reverse()
List = [1, 2, 3, 4, 5, 6, 7, 8, 9]
List.reverse()
[9, 8, 7, 6, 5, 4, 3, 2, 1]
역.순 !
▷▷ index
리스트.index(값)
List = [1, 2, 3, 4, 5]
# 0 1 2 3 4
>>> List.index(3)
2
>>> List.index(5)
4
index(num) 함수에서 num과 같은 값이 리스트에 있으면 num값의 위치 값을 반환해준다.
리스트에 없는 값을 인자에 넣으면 당연히 오류난다.
▷▷ insert
리스트.insert(위치 값, 값)
List = [1, 2, 3, 4, 5]
# 0 1 2 3 4
>>> List.insert(2, 'a')
[1, 2, 'a', 3, 4, 5]
# 0 1 2 3 4 5
해당 위치 값에 해당 값을 넣은 후, 나머지는 뒤로 밀린다.
▷▷ count
리스트.count(값)
List = [1, 1, 1, 1, 2, 2, 3, 4, 4]
>>> List.count(1)
4
>>> List.count(3)
1
해당 값이 리스트에 몇 개가 있는지 count 함수를 이용하여 간단하게 알 수 있다.
▷▷ extend
리스트.extend(리스트2)
List = ['a', 'b', 'c']
>>> List.extend(['d', 'e'])
['a', 'b', 'c', 'd', 'e']
List2 = [1, 2, 3]
>>>List.extend(List2)
['a', 'b', 'c', 'd', 'e', 1, 2, 3]
리스트의 더하기(+) 와 동일한 기능이다.
더하기(+) 기호 또는 extend() 함수로 두 리스트를 합칠 수 있다.
차이점은 extend() 함수는 해당 리스트에 요소를 합친 것이다.
'Python > Function & Grammer' 카테고리의 다른 글
Python : datetime - 날짜 관련 라이브러리 (0) | 2021.01.21 |
---|---|
Python : calendar - 달력 관련 라이브러리 (0) | 2021.01.21 |
Python : String (문자열) (0) | 2021.01.19 |
Python : Number (숫자형) (0) | 2021.01.19 |
Python : 오류 예외처리 (try) (0) | 2021.01.17 |
- Total
- Today
- Yesterday
- 40회 SQLD
- 데이터 모델링
- 별 찍기
- 백준별찍기
- range함수
- 데이터베이스
- SQLD1과목
- Unity GameObject 생성
- 파이썬
- f-string
- SQLD
- 백준파이썬
- Python
- 파이썬sum
- SQLD40회
- 네이버클라우드플랫폼
- 파이썬 입출력
- SQLD 1과목
- NaverCloudPlatform
- 백준
- 백준 별찍기
- 파이썬for문
- 파이썬입출력
- python별찍기
- SQLD 2과목
- 파이썬문법
- BAEKJOON
- python문법
- SUM함수
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |