본문 바로가기
  • 시 쓰는 개발자

파이썬10

파이참 기본 단축키 Ctrl + R : 실행 (기존 Shift F10을 변경, run context configuration) Shift + Enter : 키보드 바로 다음 줄로 이동시키기 Ctrl + / : 한번에 주석처리 Alt +Enter : (빨간줄 그어져잇을 때) 모듈 바로설치 F2 : 하이라이트 표시된 에러 문장으로 바로 이동 Ctrl + B : 함수가 정의된 곳으로 바로 이동 Ctrl + E : 현재 파이썬 파일이 있는 곳 폴더열기 (keymap에서 show in explorer) Ctrl + D : 드래그 없이 바로 한줄 복사해서 붙여넣기 Ctrl + Y : 드래그 없이 바로 한줄 삭제하기 Ctrl + C : 드래그 없이 바로 한줄 복사하기 Ctrl + X : 드래그 없이 바로 한줄 잘라내기 2024. 3. 9.
파이썬 슬라이싱 슬라이싱 파이썬 slicing은 "iterable한 객체" 모두를 다룰 수 있다. 따라서 리스트, 튜플, 문자열 같은 것들을 다룰 수 있다. 1. 구조 : a[start : end : step] start: 슬라이싱 시작위치. 주의할 것은 이때 start가 의미하는 것은 index번호이다. 따라서 a[3:5]면 3번째 숫자부터 자르는 것이 아니라, 인덱스 3부터 가져오는 것이므로 실제로는 4번째 숫자부터 슬라이싱을 한다. end: 슬라이싱이 끝나는 위치인데, for문의 range처럼 end는 포함하지 않기 때문에 슬라이싱은 end-1까지 잘라짐 step: 몇개씩 끊어서 가져올지, 그리고 방향을 정한다. ex1. start부터 끝까지 가져오기 a[start:] ex2. 맨 처음부터 end-1까지 가져오기 .. 2024. 3. 7.
dictionary에서 key 다루기 dictionary에서 특정 key 찾기 : key in dict 딕셔너리에 특정한 key가 있는지 확인할 때 그냥 in 을 사용한다. 'a' in dict라고 하면 dict의 key들이랑 비교한다. 이때 return값은 True이거나 False이다. dictionary = { 2: 1, 3: 4, 5: 2, 1: 3, 4: 1} print(1 in dictionary) # True print(5 in dictionary) # True print(10 in dictionary) # False print('a' in dictionary) # False dictionary에서 특정 key에 매칭되는 value 찾기 : dict.get(key) get() 메소드에 key값을 넘겨주면 해당 key값의 value.. 2024. 3. 7.
2차원 리스트 정렬하기 2차원 list 정렬 기본적으로는 정렬은 lambda를 사용해서 정렬을 한다. 그러나 2차원 배열 lst에 대해 lst.sort()라고 하면, lambda를 안써도 디폴트로 x좌표에 대해 오름차순 정렬하고, 값이 같으면 y좌표에 대해 다시 오름차순으로 정렬해준다. Ex. 이런식으로 2차원 리스트 있다고 가정. [ [2, 1], [3, 4], [1, 2], [1, 3], [3, 2] ] 결과적으로 저 5개 덩어리는 각각이 한몸이라 x기준으로 정렬하든 y기준으로 정렬하든 같이 움직임. array.sort(key=lambda x : x[0]) # x좌표 기준으로 정렬, y좌표 그대로 둠 array.sort(key=lambda x : x[1]) # y좌표 기준으로 정렬, x좌표 그대로 둠 array.sort(k.. 2024. 3. 7.
문자열 replace 파이썬 replace 문자열에서 replace('바꿀 문자', '이거로 바꿈', 변경 반복횟수) 라고 하면 문자열 내에서 일부를 통째로 원하는 문자로 변경 가능. 이거로 단어 개수 세거나 문자 길이를 늘리고 줄이고 할 수 있음. 변경 반복 횟수는 기본적으로 문자열 전체를 다루도록 설정되어있다. str = "oxoxoxox" star_string = str.replace("ox", "*") strange_string = str.replace("ox", "*", 1) # 반복횟수가 1번이라서 앞에 한번만 변경된다. print(star_string) print(strange_string) [출력] **** *oxoxox ※ 주의사항 참고로, 문자열 내에서 특정 문자끼리 위치를 서로 바꾸고 싶을때는 replac.. 2024. 3. 7.
split()과 split("")의 차이점 split() 공백 개수 상관없이 싹다 한꺼번에 처리해서 덩어리만 만들어준다. 그리고 공백 뿐만 아니라 탭이나 엔터도 처리해준다. split(" ") 공백 1개를 기준으로 싹다 처리해서, 공백이 2개면 " "도 덩어리로 만들어줌 Ex) iaa = "i am kwang hwi" \ "you can do it !!!" print(iaa.split()) print(iaa.split(" ")) split() : ['i', 'am', 'kwang', 'hwiyou', 'can', 'do', 'it', '!!!'] split(" ") : ['i', 'am', '', 'kwang', '', '', 'hwiyou', '', '', '', '', '', 'can', 'do', 'it', '!!!'] 2024. 3. 7.
list comprehension - list를 코드 한줄로 초기화하기 이 포스트에서는 list comprehension의 아주 간단한 형태만 보여주는데, 조금 더 숙달이 된다면 [ 출력되는 형태 또는 식 for 변수 in range(범위) if ~~] 처럼 한줄로 더 세세한 내용을 담을 수도 있다. 밑줄친 부분들이 특이점인데, 출력되는 형태 자체(x*2이나 x+2 처럼)를 정해줄 수도 있고, 홀짝(if x%2==0)처럼 조건을 달아서 출력해줄 수도 있다. 1) 1차원 리스트 초기화 하기 ① n개만큼 초기화 시켜놓고 시작하기 nums1 = [0 for i in range(10)] → list 0으로 10개 초기화 ② 직접 초기화 하기, 개수 제한 없음 nums2 = list(map(int, input().split())) → list에 원소들 하나씩 직접 입력해줌 2) 2차.. 2024. 3. 7.
리스트와 문자열은 동일한가?? 파이썬 문법에서 문자열을 리스트처럼 다룰 수가 있기에 종종 이 둘이 같은지 헷갈릴 때가 있다. 예를 들면 name = "kim min su" 라고 하면, name[1] 이라고 할 때 i가 출력됨을 알 수 있다. 그렇다면 파이썬에서 리스트와 문자열은 동일하다고 말할 수 있을까?? 정답은 "No"이다. 리스트와 문자열은 모두 시퀀스(sequence) 자료형이지만, 내부 구현과 사용 방법에서 차이가 있다. 예를 들어, 리스트는 가변(mutable) 자료형라서 원소들을 추가, 삭제, 변경할 수 있지만, 문자열은 불변(immutable) 자료형이라 원소를 변경할 수 없다. 이는 굉장히 굉장히 중요한 사실이다. 이걸 모르고 문자열을 리스트처럼 생각하고 계속 바꾸려고 시도한다면 코딩 테스트에서 낭패를 볼 수 있다. .. 2023. 3. 6.
코딩 문제들 느낀점 list[index+1]나 list[index-1] 처럼 다룰 때는 쉽게 out of index 나곤 함. for문을 length - 1까지만 돌리는 것들이 하나의 방법이 됨 ★★중요★★ 코드 작성할 때 주의할 것은 경계값이다. 시작지점과 끝지점에서도 정상작동 하는지 체크하는 게 중요. 안그러면 IndexError: list index out of range 가 쉽게 난다. ex. index가 0일때, 1일때 혹은 끝 인덱스일 때 등등. 테스트 케이스에서 입력값이 1억처럼 큰 경우도 있으니 for문 돌릴 때 혹은 list 초기화 할 때 함부로 입력값만큼 돌리게끔 해놓으면 안됨 그럼 시간이나 메모리 초과 날 수도 있다. 3번과 같은 맥락으로, 그래서 무지성 리스트로 풀 게 아니라, 가지고 있는 값들을 어떻.. 2022. 11. 17.