Python学习:split()方法以及关于str.split()[0]等形式内容的详细讲解

str.split(str="", num=string.count(str)).
参数:
  • str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num – 分割次数。默认为 -1, 即分隔所有。
返回值:

Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

  • 返回分割后的字符串列表。
代码示例:
  • 输入
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );          # 以空格为分隔符,包含 \n
print str.split(' ', 1 );    # 以空格为分隔符,分隔成两个
  • 输出
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']

关于str.split()[0]等形式内容的详细讲解

代码示例:
  • 输入与输出
>>> str="hello boy<[www.doiido.com]>byebye"
>>> str.split("[")[1].split("]")[0]
'www.doiido.com'
>>> str.split("[")[1].split("]")[0].split(".")
['www', 'doiido', 'com']
  • 解析:

str.split("[")[1]. split("]")[0]输出的是 [ 后的内容以及 ] 前的内容。
str.split("[")[1]. split("]")[0]. split(".") 是先输出 [ 后的内容以及 ] 前的内容,然后通过 . 作为分隔符对字符串进行切片。

下面再对上面的例子进一步操作加深理解:

str="hello boy<[www.doiido.com]>byebye"
str.split("o")[0]

得到:‘hell’

str="hello boy<[www.doiido.com]>byebye"
str.split("o")[1]

得到:’ b’(这里b的前面有个空格!)

str="hello boy<[www.doiido.com]>byebye"
str.split("o")[3]

得到:‘iid’(这里得到的iid是第3个o后和第4个o前之间的内容)

str="hello boy<[www.doiido.com]>byebye"
str.split("[")[0]

得到:‘hello boy<’(这里得到的hello boy<是第一个[之前的内容)

  • 解析:
    str.split(“o”)[0]得到的是第一个o之前的内容
    str.split(“o”)[1]得到的是第一个o和第二个o之间的内容
    str.split(“o”)[3]得到的是第三个o后和第四个o前之间的内容
    str.split("[")[0]得到的是第一个 [ 之前的内容
    注意:[ ]内的数值必须小于等于split("")内分隔符的个数,否则会报错,报错内容如下:
str="hello boy<[www.doiido.com]>byebye"
str.split("o")[6]
IndexError                                Traceback (most recent call last)
<ipython-input-15-50d5956c7ce9> in <module>()
      1 str="hello boy<[www.doiido.com]>byebye"
----> 2 str.split("o")[6]

IndexError: list index out of range
补充:

示例:

str="hello boy<[www.doiido.com]>byebye"
str.split("o")[0:2]
得到的结果:
['hell', ' b']

解析:
str.split("o")[0:2]得到的是第一个o之前的内容 + 第一个o和第二个o之间的内容,这里第三个o前内容取不到,是一个左闭右开区间。

引申:

同理:`str.split("o")[0:-1]`取得的结果为
`['hell', ' b', 'y<[www.d', 'iid', '.c']`

`str.split("o")[1:3]`取得的结果为
[' b', 'y<[www.d']

注:注意空格!注意空格!注意空格!


如有错误内容请积极批评指正!感谢!
参考内容:
http://www.runoob.com/python/att-string-split.html
http://www.cnblogs.com/douzi2/p/5579651.html

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐