字符串拼接,格式化输出,深浅复制(2)

'%d'%5    #格式化整数
'5'
'%d'%(5)  #可加括号或者不加
'5'

'%f'%5    #格式化小数,默认保留6位
'5.000000'

'%.1f'%1.5 #.1保留1位小数
'1.5'

'%10.3f'%1.5
'     1.500'     

'%3.5f'%1.5    #宽度和精度发生冲突,遵循后面的精度
'1.50000'

'%+10.3f'%1.5
'     1.500'

'%-10.3f'%1.5
'1.50000'

 '%+-10.3f'%1.5
'+1.500  

  '%+-10.3f'%-1.5
  '-1.500 '

 

>>> '%-+10.3f'%-1.5
'-1.500 '
>>> '%--10.3f'%-1.5
'-1.500 '

'%-10.3f'%-1.5

'-1.500    '

 

'%10.3f'%-1.5

'        -1.500'

 

'%10.3f'%1.5

'       1.500' 

 

'%c'%65
'A'
 '%c'%97
'a'
 '%c'%64
'@'
 '%c'%77
'M'

 

'%o'%2
'2'

'%o'%7
'7'

'%o'%8
'10'

'%o'%16    #  '%o'%8  代表格式化“8进制”
'20'


'%x'%16    #格式化16进制
'10'

'%x'%9
'9'


'%x'%10
'a'



'%x'%111
'6f'


'%x'%11
'b'


'%x'%12
'c'


'%e'%100          #格式化科学计数法
'1.000000e+02' →1*10**2'


print('aaa\tbbb')     #\t制表符   tab键
aaa    bbb

print('\a')     #提示音


print('aaa\baaa')  #\b退格键
aaaaa



print('aaa\nbbb')      #\n  换行
aaa
bbb

print(r'aaa\tbbb')   #r取消转义,\\也是取消转义
aaa\tbbb


print('aaa\\tbbb')
aaa\tbbb

深浅复制

 

li=[]              
5059
li=li.copy()
id(li)
2458
li
[1]           #浅复制,身份证已经不一样,深浅复制出现在嵌套列表里


li=['a','b']
li=li.copy()
li
['a','b']

l2=li.copy()
l2
['a','b']

li.append('c')
['a','b','c']


针对嵌套了列表才用的,因为列表是可变的。(这个点注意下,不然要陪80个亿)

除了copy.deepcopy()之外,其他的都是浅复制。

copy()和分片都是浅复制,只是复制表面。而深复制是从里到外都复制了。

##浅复制中列表会跟着变,而深复制不会变。

网上找来一个碾平list的方法,碾完了把这个新的list重新赋值给一个变量。这下再怎么倒腾都没事了。

复制代码
b = ["o", "g", "s", "f", 1, 2]
a = [1, "a", 2, [3, 4], ["c", ["d", "e", "f"]], [[5, 6], [7, 8]], b]

# 碾平list
flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]
a = flatten(a)

print(a)
# [1, 'a', 2, 3, 4, 'c', 'd', 'e', 'f', 5, 6, 7, 8, 'o', 'g', 's', 'f', 1, 2]

 

 

 

posted @ 2018-03-16 08:59  追梦长胜  阅读(163)  评论(0)    收藏  举报