Language/Python
[Python] 리스트
gartenhh
2021. 8. 6. 15:30
listName = [element1, element2, element3, ...]
list2 = [a,b,c,[1,2,3]]
위와 같이 만들어주면 된다. 리스트 자체를 element로 가질 수 있다
인덱싱, 슬라이싱
인덱싱
0부터 순서대로 인덱싱
음수 가능
리스트 안에 리스트가 있으면 안에 있는 리스트 반환
슬라이싱
문자열 슬라이싱과 유사
list[startNum : endNum]
중첩된 리스트에서 슬라이싱
list[idx][startNum : endNum]
리스트 연산
더하기
list1 + list2
두 개의 리스트 합침
반복하기
list * 3
리스트 여러 번 반복
길이 구하기 : len()
len(listName)
리스트 수정, 삭제
리스트 수정
인덱스 이용
list[idx] = newValue
리스트 삭제 : del
#인덱스 이용해서 삭제
del list[idx]
#슬라이싱 이용해서 삭제
del list[startNum : endNum]
리스트 관련 함수들
요소 추가 : append()
#요소 한 개 추가
list.append(element)
# 여러 요소 추가
list.append([element1, element2])
리스트 정렬 : sort()
list.sort()
리스트 뒤집기 : reverse()
list.reverse()
역순으로 뒤집는다
위치 : index()
list.index(element)
괄호 안의 요소가 리스트에 있으면 해당 위치 값을 반환한다
요소 삽입 : insert()
list.insert(idx, element)
idx번째 위치에 element를 삽입
요소 제거 : remove()
list.remove(element)
리스트 안에서 해당 요소 제거
해당 요소가 여러 개라면, 첫 번째 요소만 제거
요소 꺼내기 : pop()
# 맨 마지막 요소 pop
list.pop()
# 특정 인덱스의 요소 제거
list.pop(index)
pop: 꺼내고 제거
해당 요소 개수 세기 : count()
list.count(element)
리스트 안에 해당 요소가 몇 개 있는지 개수를 반환
리스트 확장 : extend()
list1.extend(list2)
list2 위치에 리스트를 직접 써줘도 된다.
이는 list1 += list2
과 같다
수학적 계산
max()
,min()
: 리스트의 요소들 중 최댓값/최솟값 리턴abs()
: 절댓값round()
: 반올림sum()
: 리스트의 합
그밖에
all()
: 모든 요소가 조건 만족하면 Trueif all(i>5 for i in my_list): #do something
any()
: 하나의 요소라도 조건 만족하면 Trueif any([i%2 == 0 for i in my_list]): #do something
enumerate()
: 리스트를 인덱스와 함께 반복for v in enumerate(my_list): print(v)
리스트 응용 - 복사하기
a = [1,2,3,4]
b = a
위 코드에서 b는 a와 동일한 주소의 리스트를 가리키게 된다. 즉, a를 이용해 리스트를 수정하면 b에서도 수정된 결과가 출력된다.
이렇게 주소를 참조하지 않고 값만 복사하기 위해서는 다른 방법을 써야만 한다.
[ : ] 이용하기
a = [1,2,3,4]
b = a[:]
copy 모듈
from copy import copy
a = [1,2,3,4]
b = copy(a)
++리스트로 변수 만들기
[a,b] = [1,2,3,4]
가능하다
List Comprehensions
빠르게 리스트 만들 수 있다
my_list = [ i**3 for i in range(4) if i%2 == 0]
# my_list = [0, 8]