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(): 모든 요소가 조건 만족하면 True
  • if all(i>5 for i in my_list): #do something
  • any(): 하나의 요소라도 조건 만족하면 True
  • if 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]