Python常见数据结构详解

2019-10-06 10:22:02丽君

str1='Hello,%s' % 'world.'
print str1

格式化操作符的右操作数可以是任何东西,如果是元组或者映射类型(如字典),那么字符串格式化将会有所不同。

strs=('Hello','world') #元组
str1='%s,%s' % strs
print str1
d={'h':'Hello','w':'World'} #字典
str1='%(h)s,%(w)s' % d
print str1

输出:

Hello,world
Hello,World

注意:如果需要转换的元组作为转换表达式的一部分存在,那么必须将它用圆括号括起来:

str1='%s,%s' % 'Hello','world'
print str1

输出:

Traceback (most recent call last):
 File "F:Pythontest.py", line 2, in <module>
  str1='%s,%s' % 'Hello','world'
TypeError: not enough arguments for format string

如果需要输出%这个特殊字符,毫无疑问,我们会想到转义,但是Python中正确的处理方式如下:

str1='%s%%' % 100
print str1

输出:

100%

对数字进行格式化处理,通常需要控制输出的宽度和精度:

from math import pi
str1='%.2f' % pi #精度2
print str1
str1='%10f' % pi #字段宽10
print str1
str1='%10.2f' % pi #字段宽10,精度2
print str1

输出:

3.14
 3.141593
   3.14

字符串格式化还包含很多其他丰富的转换类型,可参考官方文档。

Python中在string模块还提供另外一种格式化值的方法:模板字符串。它的工作方式类似于很多UNIX Shell里的变量替换,如下所示:

from string import Template
str1=Template('$x,$y!')
str1=str1.substitute(x='Hello',y='world')
print str1

输出:

Hello,world!

如果替换字段是单词的一部分,那么参数名称就必须用括号括起来,从而准确指明结尾:

from string import Template
str1=Template('Hello,w${x}d!')
str1=str1.substitute(x='orl')
print str1

输出:

Hello,world!

如要输出$符,可以使用$$输出:

from string import Template
str1=Template('$x$$')
str1=str1.substitute(x='100')
print str1

输出:

100$

除了关键字参数之外,模板字符串还可以使用字典变量提供键值对进行格式化:

from string import Template
d={'h':'Hello','w':'world'}
str1=Template('$h,$w!')
str1=str1.substitute(d)
print str1

输出:

Hello,world!

除了格式化之外,Python字符串还内置了很多实用方法,可参考官方文档,这里不再列举。

4、通用序列操作(方法)

从列表、元组以及字符串可以“抽象”出序列的一些公共通用方法(不是你想像中的CRUD),这些操作包括:索引(indexing)、分片(sliceing)、加(adding)、乘(multiplying)以及检查某个元素是否属于序列的成员。除此之外,还有计算序列长度、最大最小元素等内置函数。