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]>>>c51.4 음수지수>>> ; a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>>>a[-1]10 >>> a[-3]81.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)4081.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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.