Python 字符串操作(字符串、列表切片)

https://www.luogu.com.cn/blog/km911/python-zi-fu-chuan-cao-zuo

↑可以看我洛古上的帖子。

字符串(str)是编程语言中非常重要的部分,在python当中具有很多作用。当然,熟练掌握python字符串操作,在日常编程中有不可替代的操作。

那么,在python中,字符串有哪些内置方法呢? 我们可以调用 dir() 函数来查看相关BIF

>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
>>> 

我们所重点关注的是这一部分:

'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'

对于这些BIF,我找到了一个表格,记录了相关的用法,具体可以到

https://www.luogu.com.cn/blog/km911/python-zi-fu-chuan-cao-zuo查看。这里就不再一一列举。

我们今天就重点讲一下字符串(列表)的切片

初次遇到这个名词,我以为切片(slice)一个高端大气上档次的名词,但切片简单来说,就是可以将中符合序列的有序序列(如列表,字符串,元组等)进行有目的地截取,来获得想要的数据。

用法举例:

>>> list1 = ["a","b","c","d","e","f","g","h"]
>>> list1[0:1]
['a']
>>> 

就我们上面的例子而言,“list1[0:1]”就是切片的过程。list[start : end : step]

 Start:起始索引,从0开始,-1表示结束; End:结束索引  ;Step:步长。

注意,列表第一个元素的索引值是0,同时注意切片左开右闭。

因为python以简洁为主,那么,大家不妨猜测一下,下面这段代码结果是什么:

>>> list1 = ["a","b","c","d","e","f","g","h"]
>>> list1[:]

这个例子中,我们的起始索引值和结束的索引值都没有添加,输出结果是这样的:

>>> list1[:]
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> 

没错,它获取了整个列表。

如果起始索引值不填,将默认从第0位开始同理,结束索引值不填,将切片到最后一个元素

另外,对于切片步长的用法:

 [0:1:n] 如:list1[0:3;1] 从0开始到3每次增加1截取,不包含索引结束位置

[0:-1:1]:从0开始到结束,每次增加1,截取不包含索引结束位置

 [:3]:默认从起始位置索引,每次增加1截取,结束位置索引为3

 [3:0:-1]反向取值,每次增加1截取,不包含索引结束位置

同样,列表切片在字符串(str)中同样适用,这里就不再一一阐述。

着重强调一个BIF--join()

join()的作用和切片恰恰相反:join()主要用于拼接字符串。

大家可以先看看例子:

>>> list1 = ["I","love","cxt"]
>>> "-".join(list1)
'I-love-cxt'
>>> "+".join(list1)
'I+love+cxt'
>>> " ".join(list1)
'I love cxt'
>>>

不出你所料,join()函数的作用是将一个列表中的元素拼接成一个字符串。 列表元素的连接用.join()前的参数表示。这与我们其他的列表操作有点不大一样,按照道理来说,join()属于列表的内置函数,理应这样写才对:list1.join("+"),而不是把所要连接的内容放在左边。

这是为什么呢?原因是,join()是字符串的其中一个方法,所以只能这样写。另外,join()支持一系列可迭代对象(列表、元组、字符串等),如果每一个可迭代对象都要创建一个join()方法,未免太过多余了。

另外,当你大规模进行字符串的拼接时,用join()方法显然要比普通的拼接方法(用+进行拼接)简单得多。

在最后:感谢您的支持!(给我点个赞呗~)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值