리스트는 [ ] 로 감싸고, 요소끼리는 쉼표로 구분한다. 어떤 자료형이든 다 요소로 넣을 수 있다.
lst = [element1, element2, element3, ... ]
빈 리스트 만들기
새로 선언 lst = [] 또는 lst = list()
기존 리스트 비우기 lst.clear()
수정
lst[index] = new_val
없으면 알아서 추가해주는 dict와 달리 반드시 기존에 존재하는 index를 넣어야 된다.
있는 값 확인
값이 있는지 확인 val in lst
값이 없는지 확인 val not in lst
특정 값의 index 반환 lst.index(val) 그 값이 여러개 있다면 첫번째 index를 반환함. 없는 경우 ValueError
리스트 길이 구하기 len(lst)
특정 element의 개수 구하기 lst.count(val)
리스트간 중복요소 찾기 set(lst1).instersection(lst2)
확장
리스트끼리 합치기 + 또는 lst1.extend(lst2) 만일 lst2 자리에 리스트가 아닌 문자열을 넣으면 알파벳으로 쪼개 넣는다.
반복 [1, 2] * 3 -> [1, 2, 1, 2, 1, 2] shallow copy이니 주의.
끝에 데이터 추가 lst.append(val) 만일 val이 리스트면 그 리스트째로 하나의 요소로 넣는다.
원하는 index에 추가 lst.insert(index, val)
cf. 리스트에서 리스트를 빼는 method는 없음. 구현은 가능. lst1_sub_lst2 = [x for x in lst1 if x not in lst2]
뽑아내기(기존 리스트 보존)
특정 위치 하나만 index로 지정
범위 slicing lst[start:stop:step] start이상 stop 미만
뽑아내면서 삭제
맨 마지막값 뽑아내기 lst.pop()
특정 index 값 뽑아내기 lst.pop(index)
삭제
특정 값 삭제 lst.remove(val) 그 값이 여러개 있다면 첫번째 값을 삭제
특정 index 값 삭제 lst.del(index)
+ remove는 찾는 값이 존재하지 않으면 ValueError 발생. del은?
정렬(보존X. 덮어씌움)
역순으로 변경 lst.reverse()
오름차순/알파벳순 lst.sort()
내림차순 lst.sort(reverse=True)
원본을 유지한 채 정렬하기
sorted lst2 = sorted(lst1)
절댓값 순 정렬 sorted(lst, key=lambda x: (abs(x), x))
복사(deep)
copy.deepcopy하고 sort
lst2 = [i for i in lst1]
리스트 내 모든 요소의 type 변경
문자열 배열 ['1', '100', '33']을 정수 배열 [1, 100, 33]로 바꾸기
list1 = ['1', '100', '33']
list2 = list(map(int, list1))
배열의 모든 요소를 이어붙인 문자열
my_list = ['1', '100', '33']
answer = ''.join(my_list) # "110033"
두개의 리스트의 같은 인덱스끼리 묶어 새로운 리스트 만들기
for m, n in zip(lst1, lst2):
new_lst.append(m, n)
2차원 배열의 열과 행을 뒤집기
mylist = [ [1,2,3], [4,5,6], [7,8,9] ]
new_list = list(map(list, zip(*mylist)))
곱집합
import itertools
iterable1 = 'ABCD'
iterable2 = 'xy'
iterable3 = '1234'
itertools.product(iterable1, iterable2, iterable3)
'Python' 카테고리의 다른 글
Python - Set (0) | 2021.01.15 |
---|---|
Python - Tuple (0) | 2021.01.15 |
Python - Function Parameters (0) | 2021.01.14 |
Python - String Formatting (0) | 2021.01.14 |
Python - 변수와 기초 연산 (0) | 2021.01.13 |