"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python 노트/트릭/레슨/뉘앙스

Python 노트/트릭/레슨/뉘앙스

2024-11-01에 게시됨
검색:966

Python notes/tricks/lessons/nuances

C 트릭에 대한 게시물을 올렸고 내가 아는 트릭에 대해 더 많이 쓰고 싶었습니다. C로 코딩했지만 대부분 Python과 JS에 있기 때문입니다. 훨씬 더 많지만 어쨌든 여기에 있습니다. 기본 Python 구문에 대한 사소한 것부터 시작하겠습니다. 그러나 초보자에게 알려지지 않은 몇 가지 사항이 있습니다. 별표로 표시했습니다 ⭐️:

1. 목록

  • 항목 데이터 구조의 정렬된 모음
  • 여러 유형을 가질 수 있음
  • aa = ["사과", 'd', 3, 9.3]

초기화:

  1. a = [1, 2]
  2. a = 목록()
  3. a = 목록([2, 3])
  4. [0]*5
  5. concat_list = 목록1 목록2

요소에 접근하기 ⭐️

  • 0 ... n-1 및 -n ... -1

기능

  • len(목록1)
  • a.append(값)
  • a.insert(index, value): 인덱스에 값을 삽입하고 모든 것을 오른쪽으로 푸시합니다
  • a.pop(): 최종 값을 반환하고 제거합니다.
  • a.remove(value): 값이 없으면 ValueError가 발생합니다.
  • a.clear()
  • a.reverse(): 제자리에서 반전
  • a.sort(): 원본
  • 을 수정합니다.
  • b = sorted(a): 원본을 수정하지 않습니다

슬라이스 ⭐️

목록의 하위 배열에 액세스하는 쉬운 방법

  • SlicedList = a[1:5]: 인덱스 1에서 시작하여 인덱스 5에서 중지, 인덱스 5는 제외됩니다
  • SlicedList = a[:3]: 0 ... 2
  • SlicedList = a[1:3]: 1에서 2
  • SlicedList = a[:]: 전체 목록 복제
  • SlicedList = myList[::2]: 단계 인덱스, 매 두 번째 항목, 첫 번째 항목부터 시작, 기본적으로 i=0;i
  • SlicedList = myList[::-1]: 목록을 뒤집는 좋은 방법

목록 복사

1. 얕은 사본

  • a = [1, 2, 3]
  • b = a

하나를 수정하면 둘 다 동일한 메모리 할당이므로 다른 것도 수정됩니다.

2. 딥 카피 ⭐️

3가지 방법:

  1. b = a.copy()
  2. b = 목록(a)
  3. b = a[:]

목록 이해

몇 가지 기본적인 목록 이해부터 시작하겠지만 금방 덜 사소해질 것입니다.

  • 값 = [범위(10)의 x에 대한 x 1] -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

- 값 = [x % 2 == 0인 경우 범위(51) 내 x에 대한 x]

values = [word for word in values if len(word) > 1 and word[0] == 'a' and word[-1] == 'y']
# OR, a nicer way is ⭐️
values = [
    string
    for string in values
    if len(string) > 1
    if string[0] == 'a'
    if string[-1] == 'y'
]

중첩 목록 이해 ⭐️

목록 목록 또는 2D 행렬 병합
중첩 목록 이해: 행렬(목록 목록) 평면화 ⭐️

예: 행렬 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

values = [
    number for row in matrix for number in row
]
# first for loop then the next for loop is inside the first and so on
  • 기타 목록 이해:
values = [
    "Even" if x % 2 == 0 
    else "Odd" 
    for x in range(10)
]
  • 이 구문 ->
    "Even" if x % 2 == 0 else "Odd"는 Python의 여러 위치에서 유효합니다. 변수에 넣을 수도 있습니다. 이는 기본적으로 삼항 연산자이지만 좀 더 장황합니다.

  • ⭐️ 목록 이해를 이해하려면 항상 표현식의 왼쪽과 오른쪽을 살펴보세요. 모든 중첩 루프는 왼쪽에서 오른쪽으로 이동합니다. if else가 for 루프의 왼쪽에 있으면 어떤 값이 있는지 확인합니다. if else 조건에 따라 삽입하시겠습니까? for 루프가 오른쪽에 있으면 목록에서 필터링하려고 합니다.

  • 5x5x5 목록을 만드는 예: ⭐️

values = [[[num 1 for num in range(5)] for _ in range(5)] for _ in range(5)]

⭐️ for 루프의 가장 바깥쪽을 찾으세요. 왼쪽에 있는 것은 값[] 배열에 추가됩니다. 이 구문의 의미는 다음과 같습니다. for _ in range(5)는 켜져 있는 모든 작업을 수행하고 싶다는 것입니다. 이 for 루프의 왼쪽을 5번 반복합니다(각 반복에서 반복자 변수의 값에 신경 쓰지 않기 때문입니다)

  • 컴프리헨션의 함수:\ 값 = [유효한 경우 값의 x에 대해 x**2(x)]

사전 이해

쌍이 있는 경우 = [("a", 1), ("b", 2)]: 쌍 또는 튜플의 목록

-> my_dict = {k:v for k, v in pair}: 값 압축 해제, 이것이 작동하려면 쌍으로 된 각 "쌍"에는 정확히 2개의 엔터티가 있어야 합니다.

이해력 설정

숫자 = [1, 2, 3, 1, 3, 2, 4, 2, 1, 3]

unique_nums = {x for x in nums}: Python은 키가 없기 때문에 이것이 세트여야 함을 알게 됩니다.

시간이 나면 이 글을 쓰겠지만, 여전히 여기에서 확인할 수 있습니다: AdvancedPythonConcepts 이것은 제가 Python 개념을 처음 배웠을 때 문서화한 제 git 저장소입니다. 시간이 나면 이 저장소를 기반으로 이 게시물을 작성하겠습니다...

릴리스 선언문 이 글은 https://dev.to/yashdevs/python-tricks-5b0c?1에서 복제됩니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3