字符串拼接,格式化输出,深浅复制(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]


浙公网安备 33010602011771号