ホームページ >バックエンド開発 >Python チュートリアル >Python3の組み込み関数の紹介
python3 では、filter、map、reduce は組み込み関数ではなくなりました。つまり、ce285a72c216c48fa20429d6ce19a64f です。python3 では、3 つはクラスであり、返される結果は反復可能なオブジェクトになります
関数フィルター条件を使用して、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は関数を反復可能なシーケンスに適用し、シーケンスの次の要素で累積計算を実行し続ける必要があります
。 reduce 関数は python3 のビルトインには属しなくなりましたが、functools モジュールの下にあり、使用する必要がある場合は functools モジュールからインポートする必要があります
from functools import reduce f = reduce(lambda x, y: x*y, [1, 2, 4]) print(f) #输出 84.hex(x)。 数値を16進数に変換
>>> 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(
シーケンスのスライス
>>> a = [1,2,3,4,5,6] >>> a[slice(1,3)] [2, 3] >>> a[1:3] [2, 3]10.sorted(
>>> 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)]
以上がPython3の組み込み関数の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。