python字符串常用方法

字符串方法 startswith()和 endswith()

startswith()和 endswith()方法返回 True,如果它们所调用的字符串以该方法传入的字符串开始或结束。否则,方法返回 False。在交互式环境中输入以下代码:

>>> 'Hello world!'.startswith('Hello')
True
>>> 'Hello world!'.endswith('world!')
True
>>> 'abc123'.startswith('abcdef')
False
>>> 'abc123'.endswith('12')
False
>>> 'Hello world!'.startswith('Hello world!')
True
>>> 'Hello world!'.endswith('Hello world!')
True

如果只需要检查字符串的开始或结束部分是否等于另一个字符串,而不是整个字符串,这些方法就可以替代等于操作符==,这很有用。

字符串方法 join()和 split()

如果有一个字符串列表,需要将它们连接起来,成为一个单独的字符串,join()方法就很有用。join()方法在一个字符串上调用,参数是一个字符串列表,返回一个字符串。返回的字符串由传入的列表中每个字符串连接而成。例如,在交互式环境中输入以下代码:

>>> ', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
>>> ' '.join(['My', 'name', 'is', 'Simon'])
'My name is Simon'
>>> 'ABC'.join(['My', 'name', 'is', 'Simon'])
'MyABCnameABCisABCSimon'

请注意,调用join()方法的字符串,被插入到列表参数中每个字符串的中间。例如,如果在', '字符串上调用 join(['cats', 'rats', 'bats']),返回的字符串就是'cats, rats, bats'。要记住,join()方法是针对一个字符串而调用的,并且传入一个列表值(很容易不小心用其他的方式调用它)。split()方法做的事情正好相反:它针对一个字符串调用,返回一个字符串列表。在交互式环境中输入以下代码:

>>> 'My name is Simon'.split()
['My', 'name', 'is', 'Simon']

默认情况下,字符串'My name is Simon'按照各种空白字符分割,诸如空格、制表符或换行符。这些空白字符不包含在返回列表的字符串中。也可以向 split()方法传入一个分割字符串,指定它按照不同的字符串分割。例如,在交互式环境中输入以下代码:

>>> 'MyABCnameABCisABCSimon'.split('ABC')
['My', 'name', 'is', 'Simon']
>>> 'My name is Simon'.split('m')
['My na', 'e is Si', 'on']

一个常见的 split()用法,是按照换行符分割多行字符串。在交互式环境中输入以下代码:

>>> spam = '''Dear Alice,
How have you been? I am fine.
There is a container in the fridge
that is labeled "Milk Experiment".
Please do not drink it.
Sincerely,
Bob'''
>>> spam.split('\n')
['Dear Alice,', 'How have you been? I am fine.', 'There is a container in the
fridge', 'that is labeled "Milk Experiment".', '', 'Please do not drink it.',
'Sincerely,', 'Bob']

向 split()方法传入参数’\n’,我们按照换行符分割变量中存储的多行字符串,返回列表中的每个表项,对应于字符串中的一行。

用 rjust()、ljust()和 center()方法对齐文本

rjust()和 ljust()字符串方法返回调用它们的字符串的填充版本,通过插入空格来对齐文本。这两个方法的第一个参数是一个整数长度,用于对齐字符串。在交互式环境中输入以下代码:

>>> 'Hello'.rjust(10)
' Hello'
>>> 'Hello'.rjust(20)
' Hello'
>>> 'Hello World'.rjust(20)
' Hello World'
>>> 'Hello'.ljust(10)
'Hello 

'Hello'.rjust(10)是说我们希望右对齐,将'Hello'放在一个长度为 10 的字符串中。'Hello'有 5 个字符,所以左边会加上 5 个空格,得到一个 10 个字符的字符串,实现'Hello'右对齐。rjust()和 ljust()方法的第二个可选参数将指定一个填充字符,取代空格字符。在交互式环境中输入以下代码:

>>> 'Hello'.rjust(20, '*')
'***************Hello'
>>> 'Hello'.ljust(20, '-')
'Hello---------------'

center()字符串方法与 ljust()与 rjust()类似,但它让文本居中,而不是左对齐或右对齐。在交互式环境中输入以下代码:

>>> 'Hello'.center(20)
' Hello '
>>> 'Hello'.center(20, '=')
'=======Hello========'

如果需要打印表格式数据,留出正确的空格,这些方法就特别有用。打开一个新的文件编辑器窗口,输入以下代码,并保存为 picnicTable.py:

def printPicnic(itemDict, leftWidth, rightWidth):
	print('PICNIC ITEMS'.center(leftWidth + rightWidth, '-'))
	for k, v in itemDict.items():
		print(k.ljust(leftWidth, '.') + str(v).rjust(rightWidth))
picnicItems = {'sandwiches': 4, 'apples': 12, 'cups': 4, 'cookies': 8000}
printPicnic(picnicItems, 12, 5)
printPicnic(picnicItems, 20, 6)

在这个程序中,我们定义了 printPicnic()方法,它接受一个信息的字典,并利用center()、ljust()和 rjust(),以一种干净对齐的表格形式显示这些信息。我们传递给 printPicnic()的字典是 picnicItems。在 picnicItems 中,我们有 4 个三明治、12 个苹果、4 个杯子和 8000 块饼干。我们希望将这些信息组织成两行,表项的名字在左边,数量在右边。要做到这一点,就需要决定左列和右列的宽度。与字典一起,我们将这些值传递给 printPicnic()。printPicnic()接受一个字典,一个 leftWidth 表示表的左列宽度,一个 rightWidth表示表的右列宽度。它打印出标题 PICNIC ITEMS,在表上方居中。然后它遍历字典,每行打印一个键-值对。键左对齐,填充句号。值右对齐,填充空格。在定义 printPicnic()后,我们定义了字典 picnicItems,并调用 printPicnic()两次,传入不同的表左右列宽度。运行该程序,野餐用品就会显示两次。第一次左列宽度是 12 个字符,右列宽度是 5 个字符。第二次它们分别是 20 个和 6 个字符。

---PICNIC ITEMS--
sandwiches.. 4
apples...... 12
cups........ 4
cookies..... 8000
-------PICNIC ITEMS-------
sandwiches.......... 4
apples.............. 12
cups................ 4
cookies............. 8000

利用 rjust()、ljust()和 center()让你确保字符串整齐对齐,即使你不清楚字符串有多少字符。

用 strip()、rstrip()和 lstrip()删除空白字符

有时候你希望删除字符串左边、右边或两边的空白字符(空格、制表符和换行符)。strip()字符串方法将返回一个新的字符串,它的开头或末尾都没有空白字符。lstrip()和 rstrip()方法将相应删除左边或右边的空白字符。在交互式环境中输入以下代码:

>>> spam = ' Hello World '
>>> spam.strip()
'Hello World'
>>> spam.lstrip()
'Hello World '
>>> spam.rstrip()
' Hello World'

有一个可选的字符串参数,指定两边的哪些字符应该删除。在交互式环境中输入以下代码:

>>> spam = 'SpamSpamBaconSpamEggsSpamSpam'
>>> spam.strip('ampS')
'BaconSpamEggs'

向 strip()方法传入参数'ampS',告诉它在变量中存储的字符串两端,删除出现的a、m、p 和大写的 S。传入 strip()方法的字符串中,字符的顺序并不重要:strip('ampS')做的事情和 strip('mapS')或 strip('Spam')一样。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值