面試題(Python)

面試題

字符串反向輸出

s = "給阿姨倒杯卡布奇諾"反向輸出S:
print(s[::-1])面試

面試必問:賦值,淺拷貝,深拷貝

賦值:多個變量指到相同內存
淺拷貝中全部的元素,無論第幾層的元素,都會共用,只有最外層的變量會有不一樣的內存地址.
深拷貝全部的不可變元素,都會共用,全部可變元素不共用,都有本身的內存地址.app

總結:
淺拷貝
我的理解:淺拷貝,舊列表只有完整替換某個元素或者增長一個元素時纔不會影響新列表,
若是舊列表變動某個元素中的部分變量(可變元素,字符串的一部分)時纔會影響新列表,
使得新舊列表同樣.
淺拷貝的時候只拷貝第一層元素
淺拷貝在修改第一層元素(不可變數據類型)的時候,拷貝出來的新列表不進行改變
淺拷貝在替換第一層元素(可變數據類型)的時候,拷貝出來的新列表不進行改變淺拷貝在修改
第一層元素中的元素(第二層)的時候,拷貝出來的新列表進行改變
深拷貝
深拷貝開闢一個容器空間(列表),不可變數據公用,可變數據數據類型(再次開闢一個新的空間)
空間裏的值是不可變的數據進行共用的,可變的數據類型再次開闢空間blog


import copy
lst1 = copy.deepcopy(lst)
# 深拷貝
import copy #導入
lst = [1,2,3,[5,6,7]]
lst1 = copy.deepcopy(lst) # 深拷貝
lst[-1].append(8)
print(lst)
print(lst1)內存

lst = [1,2,3,[5,6,7,[8,10,9]]]
import copy
lst1 = copy.deepcopy(lst)
print(id(lst[-1][-1]))
print(id(lst1[-1][-1]))
字符串

相關文章
相關標籤/搜索