python基础-字符串高级操作
1.字符串的拼接:
a = 'I' , b = 'Love' , c = 'Python' 将a,b ,c 中的字符串连成一句话。
#第一种方法:用 + 号
>>> a+b+c
'ILovePython'
#第二种方法:格式化字符串 %s
>>> '%s %s %s' % (a , b ,c)
'I Love Python'
#第三种方法:''.join()方式,注意括号里是要连接的可以是列表,元祖
' '.join([a,b,c]) (注:''里面是连接后面各个字符串的字符)
>>> a.join(b)
'LIoIvIe'
>>> "".join((a,b,c))
'ILovePython'
#第四种方法:.format方式
#'{}{}{}'.format(a,b,c) (注:{}里面可以填入与后面相对应的符号)
#format方法详解:
'{}{}{}'.format(a,b,c)
>>> '{}{}{}'.format(a,b,c)
'ILovePython'
#当{}里面是空的时候,里面默认索引为0,1,2按format括号里的顺序依次填入
'{1}{2}{0}'.format(a,b,c)
>>> "{0}{1}{2}".format(a,b,c)
'ILovePython'
>>> '{1}{2}{0}'.format(a,b,c)
'LovePythonI'
#当{}里面有索引值时,按前面的索引值将后面的每项依次填入
>>> '{n1}{n2}{n3}'.format(n1=a,n2=b,n3=c)
'ILovePython'
{}里面必须指定对象名称,后面通过赋值的方式给前面的相应的值,后面是无序的
2.格式化输出
#%s 格式化字符串
- 用作左对齐
>>> "%15s"%a #左边占用15个字符
' I'
>>> "%-15s"%a #右边占用15个字符
'I '
>>> "%1s"%1.1
'1.1'
#%d 格式化整数
+ 用在正数前面显示加号
>>> "%d" %2.1 #相当于类型强制转换Int类型
'2'
>>> "%+d"%15 #加上+号
'+15'
#%f 格式化小数
#m.n m是显示的最小长度,当m大于格式化位数时才起作用显示m位,n是代表小数的位数。
>>> "%f" %2.1 #小数点默认补6位
'2.100000'
>>> "%.2f" %2.1 #.2补两位小数
'2.10'
>>> "%10.2f" %2.1 # 10总的字符长度10位 .2保留两位小数
' 2.10'
>>> "%2.2f" %2.1 # 优先级:保留小数>字符长度
'2.10'
#%c 格式化ASCII字符
>>> "%c" %65
'A'
#bin 二进制格式化
>>> bin(4)
'0b100'
#%o 格式化八进制
>>> "%o" %16
'20'
#%x 格式化十六进制
>>> "%x" %16
'10'
>>> "%x" %15
'f'
#%e 用科学计数法格式化
>>> "%e" %10 #1*10的一次方
'1.000000e+01'
#%r 针对字符串会多加一个''(引号)
>>> "%r" %"abc"
"'abc'"
#转义字符
\n 换行 \a提示音 \b退格键 \t横向制表符 (相当于Tab键)
#取消转义 r' '
>>> r"www\nwww"
'www\\nwww'
3.专辑:深复制和浅复制
#深复制和浅复制只会出现再嵌套列表中,嵌套之后可以通过索引值来取数
#1.浅复制
#浅复制,copy 嵌套的列表指向相同的内存地址
>>> t1=["a","b"]
>>> t2=["c",t1]
>>> id(t1)
62095768
>>> id(t2[1]) #和t1同一个对象
62095768
>>> t3=t2.copy() #和t1同一个对象
>>> id(t3[1])
62095768
>>> t1.append("w")
>>> t2
['c', ['a', 'b', 'w']]
>>> t3
['c', ['a', 'b', 'w']]
>>> id(t2) #t2和t3不同对象,嵌套的列表指向相同的内存地址
62095528
>>> id(t3)
62096008
2.深复制
>>> import copy
>>> t4=copy.deepcopy(t2)
>>> id(t2),id(t4)
(62095528, 15453360)
>>> id(t2[1]),id(t4[1]) #嵌套的列表内存地址改变
(62095768, 62095408)