python TIL ( list, dictionary ...)
오늘도 원래는 알고리즘 들어야하는 날이긴 하지만 ㅎㅎ.
알고리즘 강의를 전부 python으로 하신다는 사실을 오늘 듣고
기초적인 python 문법정도는 숙달해야겠다 싶어 python 강의를 완강했다
그저께까지만해도 python 강의 굳이 들어야하나? 필요한 문법 그때그떄 구글링으로 찾아서 하지 뭐
라는 생각으로 있었는데, 다 듣고나니 확실히 마음이 편해짐
list
python은 딱히 배열이라고 나누지 않고 리스트로 통합해서 쓰는 것 같다.
a_list = [2, 3, 5, 6, 2, 4] # 선언방법
list의 값 추가
list에서의 값 추가 방법은 대표적으로 세가지가 있는데,
a_list.append(11) # 맨 마지막 인덱스에 값 11 추가
a_list.insert(0, 15) # 0번째 인덱스에 값 15 추가, 기존 0번째 인덱스부터 한칸씩 뒤로 밀림
a_list.extend([3, 4, 5]) # list 혹은 tuple을 받고, 마지막 인덱스부터 3, 4, 5 값 추가. 리스트를 추가하는게 아니라 리스트의 값들을 추가하는거임
append()와 insert()야 뭐 더 설명할 필요도 없고,
extend()만 유의하면 될 것 같다.
그 이유는
append()와 insert() 도 인자로 리스트를 받을 수 있기 때문이다.
b_list = [1, 2]
b_list.append([3, 4]) # append() 사용 (insert() 써도 같은 결과)
c_list = [1, 2]
c_list.extend([3, 4]) # extend() 사용
print(f'b_list 실행결과 :{b_list}')
print(f'c_list 실행결과 :{c_list}')
위처럼, 어떤 리스트에 다른 리스트의 값 들을 추가하고 싶을 때, 리스트를 바로 넣어주면 안되니
append()와 insert()를 쓰려면 반복문을 통한 추가작업이 필요할 것이다.
이럴 때 extend()를 활용하면 간편하게 처리가 가능하다.
그런데 사실 extend() 는 '+' 연산자를 통해서도 정말 간단하게 구현이 가능..
d_list = [1, 2]
d_list += [3, 4]
print(d_list)
list의 값 삭제
삭제는 대표적으로 del과 .remove()가 있다.
b_list = [1, 2, 3, 4, 5, 6, 7, 0, 0]
print(b_list)
del b_list[0] # b_list의 0번째 인덱스의 값 제거
print(f'del 실행 결과 : {b_list}')
b_list.remove(0) # b_list에서 값 0을 찾아 제거, 값이 없을 시 오류발생
print(f'.remove() 실행 결과 : {b_list}')
사용할 때 주의점은,
del은 .del()같은 메소드가 아니라는 것이고(저걸 뭐라고 해야할까..?), 인덱스 기준으로 제거.
remove() 는 보면 알겠지만 중복된 여러 값이 있어도 하나만 제거하고, 값 기준으로 제거를 한다
del을 인덱스가 아닌 값 기준으로 제거하려면, 이러한 방법을 쓰면 된다.
del b_list[b_list.index(0)] # 값 0의 인덱스를 제거할 인덱스로 줌
print(b_list)
그 외 리스트의 유용할 문법들
a_list.sort() # 오름차순 정렬
a_list.sort(reverse=True) # 내림차순 정렬
print(5 in a_list) # 5 가 리스트에 포함되어있는지 bool 형 반환
dictionary
a_dict = {
'name':'bob',
'age':27,
'friend':['영희','철수'],
'dic':{'oh':'really'}
} # key(키) : value(값) 의 형태
print(a_dict)
print(a_dict['dic']['oh'])
딕셔너리엔 보다시피 value에 리스트도 들어갈 수 있고, 같은 딕셔너리도 넣을 수 있다.
값을 추가하는 방법은 굉장히 간결한데,
그냥 존재하지 않는 키에 값을 할당하면 된다.
a_dict['height'] = 180
print(a_dict)
이미 'height' 키가 존재한다면 180으로 재할당이 되었을 것.
삭제 하는 방법도 간단하다.
del a_dict['friend']
print(a_dict)
사실 오늘 정리할게 산더미였는데 오늘은 여기까지해야겠다...
(tuple, set, for enumerate, f_string, 람다식 등등.. 다음에 하자)