>  기사  >  백엔드 개발  >  21가지 파이썬 팁

21가지 파이썬 팁

WBOY
WBOY원래의
2016-08-08 09:29:07871검색

python을 배우기 시작하면서 python팁을 직접 모아 정리하기 시작했습니다. 나중에 Stack Overflow

나 일부 오픈 소스 소프트웨어에서 멋진 코드를 보고 놀랐습니다. 이 작업이 여전히 수행될 수 있다는 사실이 밝혀졌습니다! , 그 당시 나는 이 코드를 직접 시도하려고 최선을 다했습니다. 전체적인 아이디어를 이해한 후 이 코드를 내 컬렉션에 추가했습니다. 이 블로그는 실제로 이 컬렉션의 마지막 부분을 공개적으로 소개하는 블로그입니다. 이미 Python 전문가라면 기본적으로 여기에서 대부분의 사용법을 알고 있어야 하지만, 자신이 모르는 몇 가지 새로운 요령도 발견할 수 있어야 한다고 생각합니다. 그리고 C, C++, Java 프로그래머이면서 Python을 동시에 배우고 있거나 단순히 프로그래밍을 배운 초보자라면 이전과 마찬가지로 특히 유용하고 놀라운 실용적인 팁을 많이 볼 수 있을 것입니다. .

모든 기술과 언어 사용법은 예를 통해 모든 사람에게 공개되며 다른 설명은 필요하지 않습니다. 각 예제를 이해하기 쉽게 만들기 위해 최선을 다했지만 독자들의 Python 친숙도 수준이 다르기 때문에 여전히 모호한 부분이 있을 수 있습니다. 따라서 예제 자체가 이해가 되지 않는 경우 적어도 예제 제목은 나중에 Google에서 검색할 때 도움이 될 것입니다.

전체 컬렉션은 난이도에 따라 대략적으로 정렬되어 있으며, 앞쪽에는 단순하고 일반적인 항목이 있고 마지막에는 희귀한 항목이 있습니다.

1.1 언박싱

>>> a, b, c = 1, 2, 3

>>> a, b, c

(1, 2, 3)

>>> a, b, c = [1, 2, 3]

>>> b, c

(1, 2, 3)

>>> a, b, c = (2 * i + 1 for i in range(3))

>>>a,b,c

(1, 3, 5)

>>>a,(b,c),d = [1, (2, 3), 4]

>>>a

1

>>>b

2

>>>c

3

>>d

4

1.2 상자 해체 변수 교환 ;> a, b

(2, 1)

1.3 확장된 언박싱(python3과만 호환 가능)

>>> , c = [1, 2, 3, 4, 5]

>>>a

1

>>>

[2, 3, 4]

>>>c

5

1.4 음수지수

>>> ; a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>>a[-1]

10

>>> a[-3]

8

1.5 잘라내기 목록

>>> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> , 5 , 6, 7]

1.6 음수 인덱스 컷 목록

>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8 , 9 , 10]

>>> a[-4:-2]

[7, 8]

1.7 단계 크기 절단 목록 지정

>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> :2 ]

[0, 2, 4, 6, 8, 10]

>>>a[::3]

[0, 3 , 6 , 9]

>>> a[2:8:2]

[2, 4, 6]

1.8 음수 단계 크기 절단 목록

>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> [: :-1]

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> :- 2]

[10, 8, 6, 4, 2, 0]

1.9 목록 잘라내기 할당

>>> 2, 3, 4, 5]

>>>a[2:3] = [0, 0]

>>> >[ 1, 2, 0, 0, 4, 5]

>>> a

[1, 8, 9, 2, 0, 0, 4, 5]

>>> a[1:-1] = []

>>> a

[1, 5]

1.10 명명된 목록 잘라내기 방법

>>> 2, 3, 4, 5]

>>> LASTTHREE = 슬라이스(-3, 없음)

>>> LASTTHREE

슬라이스( -3 , 없음, 없음)

>>> a[LASTTHREE]

[3, 4, 5]

1.11 목록 및 반복자의 압축 및 압축 해제

>>> a = [1, 2, 3]

>>> b = ['a', 'b', 'c']

>>> z = zip(a, b)

>>>z

[(1, 'a'), (2, ' b'), (3, 'c')]

>>> zip(*z)

[(1, 2, 3), ('a', ' b ', 'c')]

1.12 인접 요소 목록 압축기

>>> a = [1, 2, 3, 4, 5, 6]

>>> zip(*([iter(a)] * 2))

[(1, 2), (3, 4), (5, 6)]

>>> group_adjacent = 람다 a, k: zip(*([iter(a)] * k))

>>> group_adjacent(a, 3)

[(1, 2, 3), (4, 5, 6)]

>>> group_adjacent(a, 2)

[(1, 2 ), (3, 4), (5, 6)]

>>> group_adjacent(a, 1)

[(1,), (2,), ( 3,),(4,),(5,),(6,)]

>>> zip(a[::2], a[1::2])

[(1, 2), (3, 4), (5, 6) ]

>>> zip(a[::3], a[1::3], a[2::3])

[(1, 2, 3), (4, 5, 6)]

>>> group_adjacent = 람다 a, k: zip(*(a[i::k] for i in range(k)))

>>> group_adjacent(a, 3)

[(1, 2, 3), (4, 5, 6)]

>> ;> group_adjacent(a, 2)

[(1, 2), (3, 4), (5, 6)]

>>> 1)

[(1,), (2,), (3,), (4,), (5,), (6,)]

1.13 목록에서 사용 압축기 및 반복기 슬라이딩 값 창

>>> def n_grams(a, n):

... z = [iter(a[i:]) for i in range (n)]

... return zip(*z)

...

>>> a = [1, 2, 3, 4 , 5, 6]

>>> n_grams(a, 3)

[(1, 2, 3), (2, 3, 4), ( 3, 4 , 5), (4, 5, 6)]

>>> n_grams(a, 2)

[(1, 2), (2, 3), ( 3, 4), (4, 5), (5, 6)]

>>>n_grams(a, 4)

[(1, 2, 3, 4 ), (2, 3, 4, 5), (3, 4, 5, 6)]

1.14 압축기를 사용한 역사전

>>> ': 1, 'b': 2, 'c': 3, 'd': 4}

>>> m.items()

[('a' , 1), ('c', 3), ('b', 2), ('d', 4)]

>>> zip(m.values ​​(), m. 키())

[(1, 'a'), (3, 'c'), (2, 'b'), (4, 'd')]

> ;>> mi = dict(zip(m.values(), m.keys()))

>>> mi

{1 : 'a', 2: 'b', 3: 'c', 4: 'd'}

1.15 목록 확장

>>> a = [[1, 2], [3 , 4], [5, 6]]

>>> list(itertools.chain.from_iterable(a))

[1, 2, 3, 4, 5, 6]

>>> sum(a, [])

[1, 2, 3, 4, 5, 6]

>> > [l의 x에 대한 x]

[1, 2, 3, 4, 5, 6]

>>> , 2], [3, 4]], [[5, 6], [7, 8]]]

>>> l2]

[1, 2, 3, 4, 5, 6, 7, 8]

>>> a = [1, 2, [ 3, 4], [[5, 6], [7, 8]]]

>>> flatten = 람다 x: [y for l in x for y in flatten(l)] if type(x) list else [x]

>>> flatten(a)

[1, 2, 3, 4, 5, 6, 7, 8]

1.16 생성기 표현식

>>> g = (x ** 2 for x in xrange(10))

>>> next(g)

0

>>>다음(g)

1

>>다음(g)

4

>>> next(g)

9

>>> sum(xrange(10)의 x에 대해 3)

2025

>>> sum(x ** 3 for x in xrange(10) if x % 3 == 1)

408

1.17 사전 파생

>>> m = {x: x ** 2 for x in range(5)}

>>m

{0:0, 1:1, 2:4, 3:9, 4:16}

>>>m = {x: 'A' + str(x) for x 범위(10)}

>>>m

{0: 'A0', 1: 'A1', 2: 'A2', 3: 'A3' , 4: 'A4', 5: 'A5', 6: 'A6', 7: 'A7', 8: 'A8', 9: 'A9'}

1.18 사전 파생을 사용하여 사전

>>> m = {'a': 1, 'b': 2, 'c': 3, 'd': 4}

>> >m

{'d': 1, 'b': 2, 'c': 3}

> for k, v in m.items()}

{1: 'a', 2: 'b', 3: 'c', 4: 'd'}

1.19 Named 튜플

>>> Point = collections.namedtuple('Point', ['x', 'y'])

>> =1.0, y=2.0)

>>>p

포인트(x=1.0, y=2.0)

> ;>> 🎜>

1.0

>>> p.y

2.0

1.20 명명된 튜플 상속

>>> (collections.namedtuple('PointBase', ['x', 'y'])):

... __slots__ = ()

.. . ):

... 반환점 (x = Self.x + Other.x, Y = Self.y + Other.y)

...

> ;>> p = 점(x=1.0, y=2.0)

>> q = 점(x=2.0, y=3.0)

>> ;>p + q

점(x=3.0, y=5.0)

1.21 연산 집합

>>> 3, 3}

>>A

set([1, 2, 3])

>> 4, 5, 6, 7}

>>>B

세트([3, 4, 5, 6, 7])

>> ;> A | B

set([1, 2, 3, 4, 5, 6,

LAMP Brothers Band 오리지널 PHP 비디오 튜토리얼 CD를 무료로 받으세요/ "PHP 설명" 필수 버전에 대한 자세한 내용은 공식 웹사이트 고객 서비스에 문의하세요: http://www.lampbrother.net

PHPCMS 보조 개발 http://yun.itxdl.cn/online/phpcms/index.php ?u =5

WeChat 개발 http://yun.itxdl.cn/online/weixin/index.php?u=5

모바일 인터넷 서버측 개발 http://yun.itxdl. .cn/online/server/index.php?u=5

Javascript 강좌 http://yun.itxdl.cn/online/js/index.php?u=5

CTO 교육 캠프 http://yun.itxdl.cn/online/cto/index .php?u=5

위 내용은 Python에 대한 모든 측면을 포함하여 21가지 팁을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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