Maison >développement back-end >Tutoriel Python >Introduction aux fonctions intégrées dans python3
Dans python3, filtrer, mapper et réduire ne sont plus des fonctions intégrées, c'est-à-dire a82c9631bd3e2603199a55eaab8ef5c0. Dans python3, les trois sont des classes et le résultat renvoyé devient un objet itérable.
Utilisez la condition de filtre de fonction pour obtenir les données souhaitées dans 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
Accepte une fonction et un objet itérable (comme une liste, etc.), et applique la fonction à chaque élément de la séquence tour à tour pour former un nouvel itérateur.
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 applique une fonction à une séquence itérable Cette fonction doit recevoir Avec deux. paramètres, réduire continue le résultat et effectue des calculs cumulatifs avec l'élément suivant de la séquence
La fonction réduire n'est plus intégrée à python3, mais se trouve sous le module functools si vous devez l'utiliser. il, Besoin d'importer depuis le module functools
from functools import reduce f = reduce(lambda x, y: x*y, [1, 2, 4]) print(f) #输出 8
Convertir un nombre en hexadécimal
>>> hex(23) '0x17'
Générer un objet itérable
>>> 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) 是一个可迭代对象,而不是一个迭代器
Déterminer si une séquence est un objet itérable ou un itérateur
Convertir d'autres séquences en liste
>>> list((1,2,3,4,5)) #把一个元组转换为一个列表 [1, 2, 3, 4, 5]
Convertir le code en un objet chaîne C'est inutile Ignorez-le ici
Tranche de séquence
>>> a = [1,2,3,4,5,6] >>> a[slice(1,3)] [2, 3] >>> a[1:3] [2, 3]
>>> 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)]
est utilisé pour inverser les éléments de la liste. Cette méthode n'a pas de valeur de retour, mais elle inversera les éléments de la liste.
a = [1,2,4,5,3,7] a.reverse() a [7, 3, 5, 4, 2, 1]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!