>백엔드 개발 >파이썬 튜토리얼 >가르치세요: 30초마다 Python 트릭을 배웁니다.

가르치세요: 30초마다 Python 트릭을 배웁니다.

coldplay.xixi
coldplay.xixi앞으로
2021-01-02 10:25:442207검색

공부하는 많은 친구들 Python 동영상 튜토리얼은 실제 프로젝트 구현 중에 기능 구현에서 많은 문제에 직면하게 됩니다. 일부 문제는 어렵지 않거나 이미 해결할 수 있는 좋은 방법이 있습니다. 물론, 코딩에 능숙해지면 자연스럽게 몇 가지 유용한 기술을 요약할 수 있다는 점이 완벽하지만, 이제 막 파이썬에 익숙해진 학생들에게는 쉽지 않을 수도 있습니다.

가르치세요: 30초마다 Python 트릭을 배웁니다.

추천(무료): Python 동영상 튜토리얼

이번에는 "30-seconds-of-python", 모든 기술 및 단 30초 만에 방법을 얻을 수 있으며 업무 시간을 활용하여 축적할 수 있습니다. 아래를 빠르게 살펴보세요. “30-seconds-of-python”,所有技巧方法只要30秒就能get到,完全可以利用业务时间不断积累。下面赶紧来看一下。

https://github.com/30-seconds...

内容目录

下面是30秒学Python的整个目录,分为几大板块:ListMathObjectStringUtility,以下是整理的思维脑图。

가르치세요: 30초마다 Python 트릭을 배웁니다.

我挑选了10个实用并很有意思的方法分享给大家,其余的感兴趣可以自行学习。

1. List:all_equal
功能实现:检验一个列表中的所有元素是否都一样。
解读:使用[1:] 和 [:-1] 来比较给定列表的所有元素。

def all_equal(lst):
return lst[1:] == lst[:-1]

举例:

all_equal([1, 2, 3, 4, 5, 6]) # False
all_equal([1, 1, 1, 1]) # True

2. List:all_unique
功能实现:如果列表所有值都是唯一的,返回 True,否则 False
解读:在给定列表上使用集合set()去重,比较它和原列表的长度。

def all_unique(lst):
return len(lst) == len(set(lst))

举例:

x = [1,2,3,4,5,6]
y = [1,2,2,3,4,5]
all_unique(x) # True
all_unique(y) # False

3. List:bifurcate
功能实现:将列表值分组。如果在filter的元素是True,那么对应的元素属于第一个组;否则属于第二个组。
解读:使用列表推导式和enumerate()基于filter元素到各组。

def bifurcate(lst, filter):
    return [
    [x for i,x in enumerate(lst) if filter[i] == True],
    [x for i,x in enumerate(lst) if filter[i] == False]
  ]

举例:

bifurcate(['beep', 'boop', 'foo', 'bar'], [True, True, False, True])

# [ ['beep', 'boop', 'bar'], ['foo'] ]

4. List:difference
功能实现:返回两个iterables间的差异。
解读:创建b的集合,使用a的列表推导式保留不在_b中的元素。

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

举例:

difference([1, 2, 3], [1, 2, 4]) # [3]

5. List:flatten
功能实现:一次性的整合列表。
解读:使用嵌套的列表提取子列表的每个值。

def flatten(lst):
return [x for y in lst for x in y]

举例:

flatten([[1,2,3,4],[5,6,7,8]]) # [1, 2, 3, 4, 5, 6, 7, 8]

6. Math:digitize
功能实现:将一个数分解转换为个位数字。
解读:将n字符化后使用map()函数结合int完成转化

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

举例:

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

7. List:shuffle
功能实现:将列表元素顺序随机打乱。
解读:使用Fisher-Yates算法重新排序列表元素。

from copy import deepcopy
from random import randint

def shuffle(lst):
  temp_lst = deepcopy(lst)
  m = len(temp_lst)
while (m):
    m -= 1
    i = randint(0, m)
    temp_lst[m], temp_lst[i] = temp_lst[i], temp_lst[m]
return temp_lst

举例:

foo = [1,2,3]
shuffle(foo) # [2,3,1] , foo = [1,2,3]

8. Math:clamp_number
功能实现:将数字num钳在由a和b边界值规定的范围中。
解读:如果num落尽范围内,返回num;否则,返回范围内最接近的数字。

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

举例:

clamp_number(2, 3, 5) # 3
clamp_number(1, -1, -5) # -1

9. String:byte_size
功能实现:返回字符串的字节数。
解读:使用string.encode('utf-8')解码给定字符串,返回长度。

def byte_size(string):
    return len(string.encode('utf-8'))

举例:

byte_size('?') # 4
byte_size('Hello World') # 11

10. Math:gcd
功能实现:计算几个数的最大公因数。
解读:使用reduce()math.gcd

https://github.com/30-seconds...

콘텐츠 디렉토리

다음은 30초 안에 파이썬을 배우는 전체 디렉토리이며 여러 주요 섹션으로 나누어져 있습니다. : List, Math, Object, String, Utility, 다음은 정리된 사고 지도.

가르치세요: 30초마다 Python 트릭을 배웁니다.

나 저는 여러분과 공유하기 위해 10가지 실용적이고 흥미로운 방법을 선택했습니다. 관심이 있다면 나머지는 스스로 배울 수 있습니다. 🎜🎜🎜1. 목록: all_equal🎜
함수 구현: 목록의 모든 요소가 동일한지 확인합니다.
해석: 주어진 목록의 모든 요소를 ​​비교하려면 [1:][:-1]을 사용하세요. 🎜
from functools import reduce
import math

def gcd(numbers):
    return reduce(math.gcd, numbers)
🎜예: 🎜
gcd([8,36,28]) # 4
🎜🎜2. 목록: all_unique🎜
함수 구현: 목록의 모든 값이 고유하면 True를 반환하고, 그렇지 않으면 False를 반환합니다.
해석: 주어진 값에 집합을 사용합니다. list
code>set()중복을 제거하고 길이를 원본 목록과 비교합니다. 🎜rrreee🎜예: 🎜rrreee🎜🎜3. 목록: bifurcate🎜
함수 구현: 그룹 목록 값. filter의 요소가 True이면 해당 요소는 첫 번째 그룹에 속하고, 그렇지 않으면 두 번째 그룹에 속합니다.
해석: 목록 이해 및 enumerate()를 사용하여 필터 요소를 기반으로 그룹화합니다. 🎜rrreee🎜예: 🎜rrreee🎜🎜4. 목록: 차이🎜
함수 구현: 두 iterables 간의 차이를 반환합니다.
해석: b 컬렉션을 만들고 a의 목록 이해를 사용하여 _b에 없는 요소를 유지합니다. 🎜rrreee🎜예: 🎜rrreee🎜🎜5. 목록: flatten🎜
기능 구현: 일회성 통합 목록.
해석: 중첩 목록을 사용하여 하위 목록의 각 값을 추출합니다. 🎜rrreee🎜예: 🎜rrreee🎜🎜6. 수학: digitize🎜
함수 구현: 숫자를 한 자리로 분해합니다.
해석: n을 특성화한 후 int와 결합된 map() 함수를 사용하여 변환을 완료합니다🎜rrreee🎜예: 🎜rrreee🎜🎜7. shuffle🎜함수 구현: 목록 요소의 순서를 무작위로 중단합니다.
해석: 목록 요소의 순서를 바꾸려면 Fisher-Yates 알고리즘을 사용하세요. 🎜rrreee🎜예: 🎜rrreee🎜🎜8. 수학: 클램프_번호🎜
함수 구현: a와 b의 경계 값으로 지정된 범위에서 숫자 num를 고정합니다.
해석: num이 범위를 벗어나면 num을 반환하고, 그렇지 않으면 범위에서 가장 가까운 숫자를 반환합니다. 🎜rrreee🎜예: 🎜rrreee🎜🎜9. 문자열: byte_size🎜
함수 구현: 문자열의 바이트 수를 반환합니다.
해석: string.encode('utf-8')를 사용하여 주어진 문자열을 디코딩하고 길이를 반환합니다. 🎜rrreee🎜예: 🎜rrreee🎜🎜10. 수학: gcd🎜
함수 구현: 여러 숫자의 최대공약수를 계산합니다.
해석: reduce()math.gcd를 사용하여 주어진 목록에 구현하세요. 🎜rrreee🎜예: 🎜rrreee🎜위는 30초 안에 파이썬을 배울 수 있는 다양한 팁입니다. 어떤 일반적인 작업에 대한 새로운 영감을 얻었습니까? 또한 천천히 배울 수 있는 다른 기술이 모든 독자에게 도움이 되기를 바랍니다. 🎜

위 내용은 가르치세요: 30초마다 Python 트릭을 배웁니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제