>  기사  >  백엔드 개발  >  Python 노트/트릭/레슨/뉘앙스

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

WBOY
WBOY원래의
2024-09-03 11:00:36573검색

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(list1)
  • 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 저장소입니다. 시간이 나면 이 레포를 바탕으로 이 글을 작성하겠습니다...

위 내용은 Python 노트/트릭/레슨/뉘앙스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.