登录  /  注册

Python中partition字符串函数实例教程

零下一度
发布: 2017-05-22 17:08:37
原创
2360人浏览过

在2.5版中新增加了一个叫partition的函数,它可以做什么呢?举一个小例子:

>>> ‘http://www.donews.net/limodou’.partition(‘://’)
(‘http’, ‘://’, ‘www.donews.net/limodou’)
>>> ‘file:/a.html’.partition(‘://’)
(‘file:/a.html’, ”, ”)


       从第一个例子可以看出,它用来根据指定的分隔符将字符串进行分割,如果字符串包含指定的分隔符,则返回一个3元的tuple,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。第二个例子说明,如果找不到指定的分隔符,则返回仍然是一个3元的tuple,第一个为整个字符串,第二和第三个为空串。

那么有人要问,它与split(sep, 1)有什么区别呢?首先split返回的可能不是固定长度的返回值,它返回的是一个list,如果找到,则返回一个2元list,如果没找到,则返回一个1元的list,如:

>>> ‘a.b.c’.split(‘,’, 1)
['a.b.c']
>>> ‘a.b.c’.split(‘.’, 1)
['a', 'b.c']
登录后复制

同时在找到的情况下,它并不返回分隔符。

在某些情况下partition(sep)和rpartition(sep)(从右向左匹配)与split(sep, 1)和rsplit(sep, 1)的功能是类似的。不过partition其实是为了替换find,index而产生的,并不是为了替换split而产生的。在许多情况下,我们需要先通过find来找到一个位置,再进行分割。而使用partition就方便得多。如:

>>> a = ‘http://www.donews.net’
>>> pos = a.find(‘://’)
>>> if pos > -1:
…     print a[:pos], a[pos+1:]
http www.donews.net
登录后复制

而使用partition:

>>> a = ‘http://www.donews.net’
>>> left, sep, right = a.partition(‘://’)
>>> print left, right
http www.donews.net
登录后复制

是不是简单一些呢。

同时在2.5版中,startswith和endswith有变化,它的第一个参数可以是一个tuple了。这样用在判断几种情况的时候非常方便。比如要判断文件名后缀,原来只支持一个值时,可能要先拆分,再判断,用不上endswith,如:

>>> a = ‘a.gif’
>>> import os.path
>>> ext = os.path.splitext(a)[1]
>>> if ext in ['.gif', '.png', '.bmp']:
…     print ‘found’
…
found
登录后复制

而现在可以:

>>> a = ‘a.gif’
>>> if a.endswith((‘.gif’, ‘png’, ‘.bmp’)):
…     print ‘found’
…
found
登录后复制

是不是简单多了。注意,上面的tuple我换成list就是不行,看来是强制的。

许多有趣的东西等着你我来发现。

【相关推荐】

1. python-tutorials-362984.html" target="_self">分享一篇Python中字符串函数 (partition)详解

2. 分享一个字符串函数(partition)的实例代码

3. MySQL之-数据表分区技术PARTITION的代码示例浅析

以上就是Python中partition字符串函数实例教程的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号