Python 기본 편의 연산

파이썬 편의성

목록 이해

일반적으로 목록을 생성합니다.

def fun(x):
    return x ** 2
l = []
for i in range(5):
    l.append(fun(i))

실제로 목록 이해를 사용하여 단순화할 수 있습니다.[* for i in *]

[fun(i) for i in range(5)]

동시에 목록 이해는 여러 수준의 중첩도 지원합니다.

In:	[m + '_' + n for m in ['a','b'] for n in ['v','e']]
Out:['a_v', 'a_e', 'b_v', 'b_e']

조건부 할당

예를 들어 목록에서 5를 초과하는 요소를 자릅니다. 즉, 5를 초과하는 요소는 5로 대체되고 5보다 작은 요소는 원래 값을 유지합니다.

In:		L = [1, 2, 3, 4, 5, 6, 7]
		[i if i <= 5 else 5 for i in L]
Out:	[1, 2, 3, 4, 5, 5, 5]

익명 함수 및 지도 방법

함수의 정의는 일반적으로 명확한 매핑 관계를 가지고 있으며 이를 익명 함수의 형태로 간결하게 표현할 수 있습니다.

fun = lambda x : x ** 2

하지만 분명히 우리는 "익명성"의 의미를 위반했습니다. 많은 경우 여러 곳에서 함수를 호출할 필요가 없기 때문에 함수 이름에는 신경 쓰지 않고 매핑 관계에만 신경을 쓰는 경우가 많습니다. 기능의.

(lambda x: x ** 2)(8)
[(lambda x: x ** 2)(i) for i in range(5)]

그리고 위에서 언급한 목록 이해의 익명 함수 매핑을 달성하기 위해 맵 함수를 사용합니다. map은 목록별로 목록으로 변환해야 하는 지도 객체를 반환합니다.

list(map(lambda x, y:str(x)+"_"+y,range(5),list('abcde')))

zip 객체 및 열거 방법

  • zip 함수는 여러 개의 반복 가능한 객체를 튜플로 구성된 반복 가능한 객체로 묶을 수 있으며 zip 객체를 반환하며 해당 패키징 결과는 tuple과 list를 통해 얻을 수 있습니다.
l1 = ('avd')
l2 = ('efsf')
list(zip(l1,l2))
[('a', 'e'), ('v', 'f'), ('d', 's')]
for i,v in zip(range(len(l)),l):
    print(i,' ',v,)
0   a
1   v
2   r
3   d
  • enumerate는 반복할 때 반복되는 요소의 순회 시퀀스 번호를 바인딩할 수 있는 특수 패키지입니다.
l = list('avrd')
for i, v in enumerate(l):
    print(i,v)
0   a
1   v
2   r
3   d

추천

출처blog.csdn.net/weixin_64632836/article/details/127695584