>>test_str.split(',')['helloworld','nicetomeetyou']>> >test_str.split ('')[&"/> >>test_str.split(',')['helloworld','nicetomeetyou']>> >test_str.split ('')[&">

Maison >développement back-end >Tutoriel Python >Comment diviser une chaîne Python en une liste à l'aide de plusieurs délimiteurs

Comment diviser une chaîne Python en une liste à l'aide de plusieurs délimiteurs

PHPz
PHPzavant
2023-05-04 13:10:061791parcourir

Les chaînes de Python ont une division par défaut pour diviser la chaîne en une liste :

>>> test_str = "hello world,nice to meet you"
>>> test_str.split(',')
['hello world', 'nice to meet you']
>>> test_str.split(' ')
['hello', 'world,nice', 'to', 'meet', 'you']

Que dois-je faire si je veux que la chaîne ci-dessus soit divisée en la liste suivante en fonction des virgules et des espaces en même temps ?

['hello', 'world', 'nice', 'to', 'meet', 'you']

À ce moment-là, la division de re peut s'avérer utile, elle peut correspondre à l'expression régulière Les motifs sont utilisés comme séparateurs.

>>> import re
>>> test_str = "hello world,nice to meet you"
>>> re.split('[,| ]', test_str)
['hello', 'world', 'nice', 'to', 'meet', 'you']
>>> re.split('[, ]', test_str)
['hello', 'world', 'nice', 'to', 'meet', 'you']
>>> re.split(',| ', test_str)
['hello', 'world', 'nice', 'to', 'meet', 'you']

En fait, re.sub et str.replace des chaînes sont similaires, re.sub peut remplacer plusieurs parties qui répondent à une correspondance régulière en même temps, pas seulement une chaîne fixe.

Supplément : série de partitions

Les méthodes de série de partitions incluent partition () et rpartition ().
partition () divise la chaîne en fonction du séparateur spécifié (sep), commence l'indexation du séparateur à partir du côté gauche de la chaîne, arrête l'indexation lorsque l'index est atteint et renvoie un tuple contenant trois éléments, c'est-à-dire (head, sep, queue) .

# 遇到第一个分隔符后就停止索引
print(Str.partition('e'))
# 没有遇到分隔符 , 返回原字符串和两个空字符串
print(Str.partition('f'))
 
# 遇 到 第 一 个 分 隔 符 后 就 停 止 索 引
print(Str.rpartition('e'))
# 没 有 遇 到 分 隔 符 , 返 回 两 个 空 字 符 串 和 原 字 符 串
print(Str.rpartition('f'))

rpartition () fonctionne de la même manière que partition (), sauf qu'il se divise à partir de la fin de la chaîne.

La différence entre les méthodes de division et de partition en série

méthode

Type de retour Contient-il des délimiteurs
méthode de série divisée list(list) Non
série de partitions méthodes tuple(tuple) est

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer