每日分享
The problem is not the problem. The problem is your attitude about the problem.
问题不在于问题本身。 问题在于你对这个问题的态度。
小闫语录:
事情本身是很客观的存在,是因为人的主观意志附加,才让你我感到喜怒哀乐。有时并不是事情不放过你,而是你不放过你自己。
字符串的相关操作
切片
切片,顾名思义,就是将要操作的对象的一部分或者全部进行截取。字符串、列表和元组都支持切片。如果还是难理解,那么就类比咱们切黄瓜,不要尾部,我们会将尾部切掉,这个过程就是切片,从切的位置开始,到最尾部结束。
切片的语法:
[起始:结束:步长] # 如: >>>'hello world'[0:2:1] >>> he
截取是从起始位置的下标开始,到结束位置下标的前一位停止。是左闭右开区间,结束位置不包含。
步长表示的是选取间隔。例如:从开始将
1234
以步长为2取值,取到13
。
有一种特殊的情况,就是是步长为 -1
的时候,代表字符串从后向前,按步长为1进行取值。
# 将字符串倒置 s = 'hello world' print(s[::-1]) ------结果------- dlrow olleh
常见操作
我们先定义一个要操作的字符串:
mystr = 'hello world Ethanyan note'
接下来的操作,如果没有指定mystr,那么默认使用此字符串。
join
在列表list中每个元素后面插入字符串str,构造出一个新的字符串:
str.join(list)
例如:
list = ['hello', 'world', 'Ethanyan', 'note'] str = '-' print(str.join(list)) >>> hello-world-Ethanyan-note
partition
把mystr以str分割成三部分:str前,str和str后。
mystr.partition(str)
rpartition
:和partition
类似,不过是从右边开始。
例如:
mystr.partition('world') >>>('hello ', 'world', ' Ethanyan note')
isspace
如果 mystr 中只包含空格,则返回 True;否则返回 False。
mystr.isspace()
>>>False
isalnum
如果 mystr 所有字符都是字母或数字则返回True;否则返回False。
mystr.isalnum()
例如:
mystr.isalnum() >>>False
因为mystr中有空格
isdigit
如果 mystr 只包含数字则返回True;否则返回 False。
mystr.isdigit()
例如:
mystr.isdigit() >>>False
isalpha
如果 mystr 所有字符都是字母则返回 True;否则返回False。
mystr.isalpha()
例如:
mystr.isalpha() >>>False
splitlines
按照行分割,返回一个包含各行元素的列表:
mystr.splitlines()
例如:
mystr = 'hello\nworld' print(mystr.splitlines()) >>> ['hello', 'world']
\n
代表的是换行。
strip
删除字符串两端的空白字符:
>>> mystr = ' hello world ' >>> mystr.strip() 'hello world'
rstrip
:和strip
类似,是删除字符串右端的空白字符。>>> mystr.rstrip() ' hello world'只删除了右侧的空白字符,左侧的没变。
lstrip
:和strip
类似,是删除字符串左端的空白字符。>>> mystr.lstrip() 'hello world '
center
使用空格将字符串填充至长度width的新字符串,并将原字符串元素居中显示:
mystr.center(width)
例如:
>>> mystr = 'hello world Ethanyan note' >>> mystr.center(50) ' hello world Ethanyan note '
ljust
使用空格将字符串填充至长度width的新字符串,并将原字符串元素左对齐:
mystr.ljust(width)
rjust
:和ljust
类似,只不过是右对齐。
mystr.rjust(width)
例如:
>>> mystr.ljust(30) 'hello world Ethanyan note '
upper
转换 mystr 中的小写字母为大写
mystr.upper()
例如:
>>> mystr.upper() 'HELLO WORLD ETHANYAN NOTE'
lower
:与upper
类似,将所有的大写字母变小写。>>> a = 'HELLO WORLD ETHANYAN NOTE' >>> a.lower() 'hello world ethanyan note'
startwith
检查字符串中是否是以str开头,如果是返回True,否则返回False:
mystr.startswith(str)
例如:
>>> mystr.startswith('hello') True
endswith
:与startwith
类似,检查的是否以str结尾:
mystr.endswith(str)
title
把字符串的每个单词首字母大写:
>>> a = 'hello python' >>> a.title() 'Hello Python'
capitalize
把字符第一个字符大写:
mystr.capitalize()
例如:
>>> mystr.capitalize() 'Hello world ethanyan note'
split
以str为分隔符切片mystr,如果maxsplit有指定的值,那么就仅仅分割maxsplit个子字符串:
mystr.split(str,maxsplit)
例如:
>>> mystr.split(' ',2) ['hello', 'world', 'Ethanyan note']
replace
把mystr中的str1替换成str2,如果count指定,则替换不超过count次:
mystr.replace(str1,str2,count)
例如:
>>> mystr.replace('hello','yan',1) 'yan world Ethanyan note'
count
返回mystr中start到end之间str出现的次数:
mystr.count(str,start,end)
例如:
>>> mystr.count('o',0,30)
3
find
检测str是否在mystr中,如果是返回开始的索引值,否则返回-1。
mystr.find(str,start,end)
例如:
1. >>> mystr.find('Ethan',0,30) 2. 12 rfind:和 find类似,只不过是从右侧开始检测。 1. mystr.rfind(str,start,end)
index
同 find
,但是如果检测的str不存在,会报错:
mystr.index(str,start,end)
例如:
>>> mystr.index('Ethanyan',0,10) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: substring not found
rindex
:和index
类似,不过是从右侧开始检测。
mystr.rindex(str,start,end)