Maison  >  Article  >  développement back-end  >  Exemple de tutoriel de fonction de chaîne de partition en Python

Exemple de tutoriel de fonction de chaîne de partition en Python

零下一度
零下一度original
2017-05-22 17:08:372542parcourir

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)

3 Une brève analyse de l'exemple de code de la table de données MySQL. technologie de partitionnement 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn