Dans la version 2.5, a ajouté un nouveau et ajouté une fonction appelée partition. Que peut-il faire ? Donnez un petit exemple :
>>> 'http://www.donews.net/limodou'.partition('://')
('http', '://', 'www.donews.net/limodou')
>>> 'file:/a.html'.partition('://')
('fichier :/ a.html', ”, ”)
Comme le montre le premier exemple, il est utilisé pour diviser la chaîne en fonction du délimiteur spécifié Si le. string Contient le délimiteur spécifié, renvoie un tuple à 3 éléments, le premier est la sous-chaîne à gauche du délimiteur, le second est le délimiteur lui-même et le troisième est la sous-chaîne à droite du délimiteur. Le deuxième exemple montre que si le délimiteur spécifié est introuvable, le retour est toujours un tuple à 3 éléments, le premier est la chaîne entière et les deuxième et troisième sont des chaînes vides.
Alors quelqu'un pourrait se demander quelle est la différence entre cela et la scission (1er septembre) ? Tout d'abord, split ne peut pas renvoyer une valeur de retour de longueur fixe. Il renvoie une list. S'il est trouvé, il renvoie une liste à 2 éléments. S'il n'est pas trouvé, il renvoie un 1-. liste d'éléments, telle que :
>>> ‘a.b.c’.split(‘,’, 1) ['a.b.c'] >>> ‘a.b.c’.split(‘.’, 1) ['a', 'b.c']
De plus, il ne renvoie pas le délimiteur s'il est trouvé.
Dans certains cas, partition(sep) et rpartition(sep) (correspondant de droite à gauche) ont des fonctions similaires à split(sep, 1) et rsplit(sep, 1). Cependant, la partition est en fait créée pour remplacer find et index, et non divisée. Dans de nombreux cas, nous devons d’abord trouver un emplacement, puis le diviser. Il est beaucoup plus pratique d'utiliser une partition. Par exemple :
>>> a = ‘http://www.donews.net’ >>> pos = a.find(‘://’) >>> if pos > -1: … print a[:pos], a[pos+1:] http www.donews.net
N'est-il pas plus simple d'utiliser la partition :
>>> a = ‘http://www.donews.net’ >>> left, sep, right = a.partition(‘://’) >>> print left, right http www.donews.net
.
Parallèlement, dans la version 2.5, les débuts avec et les fins avec ont changé, et leur premier paramètre peut être un tuple. C'est très pratique pour juger plusieurs situations. Par exemple, si vous souhaitez déterminer le suffixe du nom de fichier, alors qu'il ne prenait en charge qu'une seule valeur à l'origine, vous devrez peut-être d'abord le diviser, puis déterminer qu'il n'est pas nécessaire de terminer par, par exemple :
>>> a = ‘a.gif’ >>> import os.path >>> ext = os.path.splitext(a)[1] >>> if ext in ['.gif', '.png', '.bmp']: … print ‘found’ … found
. Mais maintenant vous pouvez :
>>> a = ‘a.gif’ >>> if a.endswith((‘.gif’, ‘png’, ‘.bmp’)): … print ‘found’ … found
N'est-ce pas beaucoup plus simple ? Notez que le tuple ci-dessus ne fonctionne pas si je le remplace par une liste. Cela semble obligatoire.
Beaucoup de choses intéressantes vous attendent, vous et moi, à découvrir.
[Recommandations associées]
1. Partagez une explication détaillée de la fonction de chaîne (partition) en Python
2. Partagez un exemple de code d'une fonction de chaîne (partition)
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!