上一节介绍了序列的一些基本操作类型,这一节针对字符串的拼接、格式化输出以及复制的等做做详细介绍。
一. 字符串的拼接
a = ‘I’, b = ‘love’, c = ‘Python’. 我们的目的是:将a,b,c 拼接成’I love Python’。实现字符串的拼接是一个语言中重要的操作方式,下面介绍几种不同的方法。
方法1:直接相加 a+’ ’+b+’ ’+c
我们知道加法对字符串而言有拼接合并的作用,这是一种非常容易理解的方式
方法2:格式化输出 %s
>>> '%s %s %s'%(a,b,c) 'I love Python'
这里的s起到了占位符的作用。
注意1: 字符串之间有空格键,是因为abc之间有空格间隔
注意2: %s的个数要与后面被格式化对象的个数先对应
方法3:’ ’.join( )函数法, 单引号之间参数添加间隔的方式,括号内参数是可迭代部分
>>> ' '.join((a,b,c)) 'I love Python' #这里是以空格键
小记:这里介绍一个与’ ’.join()函数作用相反的函数’ ’.split()
S.split(sep=None, maxsplit=-1) -> list of strings:
第一个参数:是分割的位置,默认为所有的空字符,包括(空格,换行(
),制表符( )).
第二个参数:分割次数
返回一个列表
将字符串实现每一个字符都分开,用split()函数不可以,可以通过list()函数作用。
>>> te = 'I love Python' >>> te.split() ['I', 'love', 'Python'] >>> te.split('o') ['I l', 've Pyth', 'n'] >>> list(te) ['I', ' ', 'l', 'o', 'v', 'e', ' ', 'P', 'y', 't', 'h', 'o', 'n', ' ', '2', '0', '1', '8']
方法四.s.format()函数
>>> '{} {} {}'.format(a,b,c) 'I love Pyhton' >>> '{2} {1} {0}'.format(a,b,c) 'Pyhton love I' >>> '{n2} {n3} {n1}'.format(n1=a,n2=b,n3=c) 'love Pyhton I'
(1)默认里面有索引在不做指定的时候默认索引从0开始
(2)可以通过索引对元素位置换序
(3)可以对索引进行改变
二.格式化输出
格式化输出是以固定的格式输出。
>>> '%10s'%'lucky' ' lucky' #10表示表示字符串宽度,首先遵循自身宽度,默认右对齐 >>> '%-10s'%'lucky' #- 表示左对齐 'lucky '
‘%s’%'lucky' # 以字符串的形式输出
‘%d’%5 #格式化整数
‘%f’%5 #格式化小数(默认保留6位小数)
'%.1f'%1.9123456 #.1代表保留1位小数
'%5.1f'%1.91234567 #5是宽度,1是精度,精度优先
>>> '%.1f'%1.91234567 '1.9' >>> '%5.1f'%1.91234567 ' 1.9' >>> '%c'%65 'A'
‘%c’格式化ACII码
‘%o’格式化八进制
‘%x’格式化十六进制
‘%e’格式化科学计数法
- 左对齐
+ 提示后面正负
提示换行 print('aaaa
')
制表符 Tab键 print('aaaa bbbbbbbbbb')
a 提示音
退格键
r 取消转义 \ 自然字符串
>>> print(r'aaaa bbbbbbbbbb') aaaa bbbbbbbbb
三.深浅复制 发生在嵌套列表
>>> li = ['a','b'] >>> li1=[1,li] >>> lq=li1.copy() >>> lq [1, ['a', 'b']] >>> li.append('c') >>> lq [1, ['a', 'b', 'c']] >>> id(li) 55820776 >>> id(lq[1]) 55820776
浅复制: 在嵌套复制中,若嵌套元素发生变化,复制之后的元素也发生变化,复制元素的id不发生变化
>>> import copy >>> copy.deepcopy(li1) [1, ['a', 'b', 'c']] >>> ls=copy.deepcopy(li1) >>> ls [1, ['a', 'b', 'c']] >>> li.append('d') >>> ls [1, ['a', 'b', 'c']] >>> li
['a', 'b', 'c', 'd'] >>> id(li) 55820776 >>> id(li[1]) 40212480
深复制: 在嵌套复制中,若嵌套元素发生变化,复制之后的元素不发生变化,复制元素的id发生变化