python3에서는 filter, map, Reduce가 더 이상 내장 함수, 즉 ce285a72c216c48fa20429d6ce19a64f이 아닙니다. python3에서는 이 세 가지가 클래스이고 반환 결과가 반복 가능한 객체가 됩니다
함수 필터 조건을 사용하여 iterable에서 원하는 데이터를 얻으세요.
from collections import Iterator test_list = [1, 2, 3, 4, 5, 6, 7, 8, 9] f = filter(lambda x: x % 3 == 0, test_list) # filter 得到的是一个迭代器 print(isinstance(f, Iterator)) f.__next__() for i in f: print(i) #输出 True 6 9
은 함수와 반복 가능한 객체(예: 목록 등)를 허용하고 해당 함수를 순서대로 New 반복자를 형성합니다.
from collections import Iterator def f(x): return 2 * x # 定义一个函数 t_list = [1, 2, 3, 4, 5] function = map(f, t_list) print(isinstance(function, Iterator)) # print(function.__next__()) function.__next__() for i in function: print(i) #输出 True 4 6 8 10
reduce는 반복 가능한 시퀀스에 함수를 적용합니다. 이 함수는 시퀀스의 다음 요소로 누적 계산을 계속 수행해야 합니다. 축소 기능은 더 이상 python3의 내장 기능에 속하지 않지만 functools 모듈 아래에 있습니다. 사용해야 하는 경우 functools 모듈
from functools import reduce
f = reduce(lambda x, y: x*y, [1, 2, 4])
print(f)
#输出
8
>>> hex(23) '0x17'5.range(stop), range(start,stop,[step])반복 가능한 객체 생성
>>> from collections import Iterator >>> isinstance(range(5),Iterator) False >>> from collections import Iterable >>> isinstance(range(5),Iterable) True >>> f.__next__ Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'range' object has no attribute '__next__' >>> for i in f: ... print(i) ... 0 1 2 3 4 # range(x) 是一个可迭代对象,而不是一个迭代器6. object, classinfo)시퀀스가 반복 가능한 객체인지 반복자인지 확인 7.list([iterable])다른 시퀀스를 목록으로 변환
>>> list((1,2,3,4,5)) #把一个元组转换为一个列表 [1, 2, 3, 4, 5]8.repr(object
시퀀스 조각>>> a = [1,2,3,4,5,6]
>>> a[slice(1,3)]
[2, 3]
>>> a[1:3]
[2, 3]
iterable[, key][, reverse]
)>>> sorted([5,3,2,6,8]) [2, 3, 5, 6, 8] >>> a = {1:5,6:8,3:6} >>> sorted(a) #默认是按key排序 [1, 3, 6] >>> sorted(a.items()) #按key排序 [(1, 5), (3, 6), (6, 8)] >>> sorted(a.items(),key = lambda x:x[1]) #按value排序 [(1, 5), (3, 6), (6, 8)]
a = [1,2,4,5,3,7] a.reverse() a [7, 3, 5, 4, 2, 1]
위 내용은 Python3의 내장 함수 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!