python数据结构-序列之字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据结构-序列之字符串相关的知识,希望对你有一定的参考价值。
python中包含六种内建的序列:列表;元组;字符串;unicode字符串;buffer对象;xrange对象。
一、字符串:
所有标准的序列操作(索引、分片、乘法、加、成员资格、迭代、求最大最小值等)对字符串同样使用。需要注意的一点是字符串都是不可变的。
1、基本操作
>>> a="iloveu"
>>> a[0] //索引
‘i‘
>>> b="uloveme"
>>> a+b //加法
‘iloveuuloveme‘
>>> a[3:6:2] //分片
‘vu‘
>>> u in a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name ‘u‘ is not defined
>>> ‘u‘ in a
True
>>> a*2 //乘法
‘iloveuiloveu‘
>>> max(a) //求最大值
‘v‘
>>> min(a) //求最小值
‘e‘
>>>
2、字符串格式化:(通过%来实现)
在%左侧放置一个字符串(格式化字符串),而右侧放置希望格式化的值(可以是任何东西)(如果右操作数是元组的话,则其中的每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符)。
可以使用一个值,如一个字符串或者数字,也可以使用多个值的元组或字典,一般情况下使用元组:
格式化要点:
%字符:标记转换说明符的开始
转换标志(可选):-表示左对齐;+表示在转换值之前要加上正负号;“ “(空白字符)表示正数之前保留空格;0表示转换值若位数不够则用0填充
最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从值元组中读出。
点(.)后跟精度值(可选)如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将会从元组中读出。
转换类型:如表
如:
a)、元组格式化
>>> a="hello %s %s enough for ya"
>>> b=(‘world‘,‘hot‘)
>>> print a%b //左侧放置一个字符串,右侧放置希望格式化的值
hello world hot enough for ya
>>>
>>> c=[‘lisi‘,‘that‘]
>>> print (a % c) //如果用列表或其他序列来代替元组,那么序列就会被解释为一个值。只有元组 和 字典可以格式化一个以上的值
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string
>>>
格式化字符串的 “%s“成为转换说明符,他们标记了需要插入转换值的位置。s表示值会被格式化为字符串(如果不是字符串,则会用str函数将其转换为字符串)。
注意:如果要在格式化字符串里面包括百分号,则必须使用%%,这样python就不会将百分号误认为是转换说明符了。
>>> print("%d + %d = %d" % (1,2,3))
1 + 2 = 3
>>>
b)、浮点数格式化
需要用到:格式化字符 %f同时需要给定精度(一个句点在加上希望保留的小数位数);因为格式化说明符总是以表示类型的字符结束,所以精度应该放在类型字符前面。
如:
>>> a="pi with three decimals:%.3f"
>>> pi=3.1415926
>>> print(a%pi)
pi with three decimals:3.142
>>>
c)、模板字符串
d)、
以上是关于python数据结构-序列之字符串的主要内容,如果未能解决你的问题,请参考以下文章