Python은 30 초 만에 배울 수있는 아름다운 단축 코드입니다. 네티즌 : 사용하기가 너무 쉽습니다.

오늘은 30 초 만에 배울 수있는 몇 가지 코드 스 니펫을 소개하겠습니다.이 코드는 무한한 잠재력을 가지고 있으며 풍부한 파이썬 프로그래밍 사고를 포함하며 다양한 응용 프로그램을 가지고 있으며 배우기 매우 쉽습니다.

1. "2 차원 목록"

해석 : 주어진 길이와 너비, 초기 값에 따라 2 차원 목록을 반환합니다.

def initialize_2d_list(w, h, val=None):
    return [[val for x in range(w)] for y in range(h)]

 

예 :

>>> initialize_2d_list(2,2)
[[None, None], [None, None]]

>>> initialize_2d_list(2,2,0)
[[0, 0], [0, 0]]

 

2. 기능 절단 배열

해석 : 함수를 사용하여 배열의 각 요소에 적용하여 배열이 두 부분으로 절단되도록합니다. 요소에 적용된 함수에서 반환 된 값이 True이면 요소가 첫 번째 부분으로 잘리고 그렇지 않으면 두 번째 부분으로 나뉩니다.

def bifurcate_by(lst, fn):
    return [
      [x for x in lst if fn(x)],
      [x for x in lst if not fn(x)]
    ]

예 :

>>> bifurcate_by(['beep', 'boop', 'foo', 'bar'], lambda x: x[0] == 'b')
[['beep', 'boop', 'bar'], ['foo']]

 

3. "교차점"

해석 : 함수에 의해 두 개의 배열이 적용된 첫 번째 배열에서 공통 요소의 원래 요소가 추출되어 새 배열 형성합니다.

def intersection_by(a, b, fn):
    _b = set(map(fn, b))
    return [item for item in a if fn(item) in _b]

예 :

>>> from math import floor
>>> intersection_by([2.1, 1.2], [2.3, 3.4],floor)
[2.1]

 

4. 최대 첨자

해석 : 배열에서 최대 값의 첨자를 반환합니다.

def max_element_index(arr):
    return arr.index(max(arr))

예 :

>>> max_element_index([5, 8, 9, 7, 10, 3, 0])
4

 

5. 배열 대칭 차이

해석 : 두 배열에서 서로 다른 요소를 찾아 새로운 배열로 결합합니다.

def symmetric_difference(a, b):
    _a, _b = set(a), set(b)
    return [item for item in a if item not in _b] + [item for item in b if item not in _a]

예 :

>>> symmetric_difference([1, 2, 3], [1, 2, 4])
[3, 4]

많은 사람들이 파이썬을 배우고 어디서부터 시작해야할지 모릅니다.
많은 사람들이 파이썬을 배우고 기본 문법을 습득 한 후 시작할 사례를 어디에서 찾을 지 모릅니다.
사례 연구를 수행 한 많은 사람들은 고급 지식을 배우는 방법을 모릅니다.
따라서이 세 가지 유형의 사람들을 위해 비디오 자습서, 전자 책 및 과정의 소스 코드를 무료로받을 수있는 좋은 학습 플랫폼을 제공 할 것입니다!
QQ 그룹 : 705933274

6. "클립 수"

해석 : num이 숫자 범위에 있으면 num을 반환하고, 그렇지 않으면이 범위에 가장 가까운 경계를 반환합니다.

def clamp_number(num,a,b):
    return max(min(num, max(a,b)),min(a,b))

예 :

>> clamp_number(2,3,10)
3

>> clamp_number(7,3,10)
7

>> clamp_number(124,3,10)
10

7. 키-값 매핑

해석 : 개체의 키를 사용하여 개체를 다시 만들고 함수를 실행하여 각 개체의 키에 대한 값을 만듭니다.
dict.keys ()를 사용하여 객체의 키를 탐색하고 함수를 통해 새 값을 생성합니다.

def map_values(obj, fn):
    ret = {}
    for key in obj.keys():
        ret[key] = fn(obj[key])
    return ret


예 :

>>> users = {
...   'fred': { 'user': 'fred', 'age': 40 },
...   'pebbles': { 'user': 'pebbles', 'age': 1 }
... }

>>> map_values(users, lambda u : u['age'])
{'fred': 40, 'pebbles': 1}

>>> map_values(users, lambda u : u['age']+1)
{'fred': 41, 'pebbles': 2}

 

8. 케이스 변환

해석 : 영어 단어 첫 글자의 대문자를 소문자로 변경합니다.
upper_rest 파라미터 : 첫 글자를 제외한 대소 문자 변환 여부를 설정합니다.

def decapitalize(s, upper_rest=False):
    return s[:1].lower() + (s[1:].upper() if upper_rest else s[1:])

 

예 :

>>> decapitalize('FooBar')
'fooBar'

>>> decapitalize('FooBar', True)
'fOOBAR'

 

9. 동시에 합계

해석 : 목록의 각 사전에서 동일한 키 값을 가진 개체를 더합니다.

def sum_by(lst, fn):
    return sum(map(fn,lst))

예 :

>>> sum_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }], lambda v : v['n'])
14

10. 코드 줄에서 발생 횟수 찾기

해석 : 목록에서 특정 숫자의 발생 횟수 합계를 찾습니다.

def count_occurrences(lst, val):
    return len([x for x in lst if x == val and type(x) == type(val)])

예 :

>>> count_occurrences([1, 1, 2, 1, 2, 3], 1)
3

 

11. 어레이 재 그룹화

필요한 크기에 따라 목록을 세분화하려면 :

효과는 다음과 같습니다.

chunk ([1,2,3,4,5], 2)
# [[1,2], [3,4], 5]

 

그 대신 map의 두 번째 매개 변수는 목록이며, Map은 목록의 각 요소를 사용하여 첫 번째 매개 변수의 함수 함수를 호출하고 각 함수 함수의 반환 값을 포함하는 새 목록을 반환합니다.

12. 배열 할 수

정수를 배열로 분할하는 map 응용 프로그램도 마찬가지입니다.

def digitize(n):
    return list(map(int, str(n)))

 

효과는 다음과 같습니다.

digitize(123)
# [1, 2, 3]

정수 n을 문자열로 변환 한 후 자동으로 문자열을 직렬화하고 마지막으로 요소를 맵의 첫 번째 매개 변수에 적용하고 정수로 변환 한 후 리턴합니다.

13. 비 재귀 피보나치

피보나치 수열을 기억하십시오. 처음 두 수의 합은 0, 1, 1, 2, 3, 5, 8, 13과 같은 세 번째 수의 ​​값입니다.

이 알고리즘을 구현하기 위해 재귀를 사용하면 효율성이 매우 낮으며 비재 귀적 방법을 사용하여 다음을 달성합니다.

효과는 다음과 같습니다.

fibonacci(7)
# [0, 1, 1, 2, 3, 5, 8, 13]

 

이런 식으로 보는 것은 매우 간단하지만 생각은 돌아봐야합니다.

14. 밑줄이 그어진 문자열

일괄 균일 변수 이름 또는 문자열 형식.

효과는 다음과 같습니다.

snake('camelCase')# 'camel_case'

snake('some text')# 'some_text'

snake('some-mixed_string With spaces_underscores-and-hyphens')# 'some_mixed_string_with_spaces_underscores_and_hyphens'

snake('AllThe-small Things')# "all_the_small_things"


re.sub는 문자열의 일치 항목을 대체하는 데 사용됩니다. 이것은 실제로 "모의 인형"용법으로 처음에는 이해하기 쉽지 않을 수 있으며 천천히 이해해야합니다.

첫 번째 대체 는 s 문자열에서 ''replace'- '를 사용하는 것입니다.

두 번째 대체 는 첫 번째 대체 이후의 문자열을위한 것이며 '([AZ] +)'의 정규식을 충족하는 문자 세그먼트 (모두 대문자로 된 단어)를 r '\ 1'로 대체합니다. 즉, 공백을 사용하십시오. 각 단어를 구분합니다.

세 번째 대체 는 두 번째 대체 이후의 문자열과 '([AZ] [az] +)'의 정규식을 준수하는 문자 세그먼트에 대한 것입니다 (즉, 첫 번째 문자는 대문자이고 다른 문자는 소문자입니다. ) r '\ 1'의 대체는 또한 단어를 공백으로 분리합니다.

저는 여전히 제가 직접 만든 Python 학습 그룹 인 705933274 를 추천하고 싶습니다 . 모두 Python을 배우고 있습니다. Python을 배우고 싶거나 배우고 싶다면 가입 할 수 있습니다. 모두가 소프트웨어 개발 파티이며 수시로 (Python 소프트웨어 개발과 만 관련됨) 최신 Python 고급 자료 사본 및 2021 년에 직접 컴파일 한 제로 기반 교육이 포함됩니다. Python에 관심이 있고 고급에 관심이있는 친구들을 환영합니다!

 

추천

출처blog.csdn.net/pyjishu/article/details/115004500