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

Python7

파이썬 슬라이싱 슬라이싱 파이썬 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.
숫자인 숫자, 문자인 숫자 n = 10 과 같이 키보드로 입력받지 않고 직접 작성해 넣은 코드에서, 숫자로 시작하는 단어(식별자, identifier)는 자동으로 수로 인식된다. 반면에 a,b,c = input().split() 3 4 5 이렇게 치면 다 더해서 345로 그냥 붙여서 출력되는데, 코드로 직접 a=3 b=4 c=5 해서 a+b+c 하면 12로 출력된다. / 물론 우리는 입력받을 때 map으로 입력받으므로 이런 실수는 하지 않는다! 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.