abc.join(甲乙丙) 將abc 依次插入到甲乙丙中
甲abc乙abc丙
join( )可以把列表變成字符串
split( )可以把字符串變成列表
list在循環時不能刪除元素,因爲會改變索引,導致奇數位索引(1 3 5 7 )對應的元素會被跳過,無法被刪除
解決方案是循環時記錄下被刪除的元素到另一個列表中,然後循環記錄列表來刪除原列表的元素
描述
Python 字典 fromkeys() 函數用於創建一個新字典,以序列 seq 中元素做字典的鍵,value 爲字典所有鍵對應的初始值。不會對原字典產生影響.
語法
fromkeys() 方法語法:
dict.fromkeys(seq[, value])
注意: 當seq爲字符串時, 字符串會被切割爲單元素列表作爲字典的鍵
dict.fromkeys("王健林","王思聰") 輸出爲: {'健':"王思聰",'王':"王思聰",'林':'王思聰'}
set( ) 中的元素,不重複,無序,必須是可hash(int,str,tuple,bool),可以認爲set就是dic類型的數據,不保存value,只保存key.也用{}表示
set集合彙總的元素必須是可hash的,但是set本身是不可hash的,所以set自身不能嵌套存放, set可變.
set() 集合主要特徵:元素不可重複,所以可用來去重
增加
s.add( ) 增加
s.update( ) 迭代增加
刪除
s.pop( ) 隨機刪除
s.remove ( "刪除元素")
s.clear( ) 清空
修改
沒有索引,也沒有辦法定位一個元素,只能通過先刪除後新增的方法進行修改
查詢 set雖然不可hash但是可迭代
for el in s:
print(el)
常用操作
frozenset( ) 不可變,所以可hash,所以可以放到set( ) 裏
列表進行賦值操作,實際上是引用內存地址的賦值,內存中此時只有一個列表,兩個變量同時指向同一個列表,對其中的一個進行操作,兩個都會跟着改變.
淺拷貝 copy 創建新對象 (只拷貝第一層)
lst2 = lst1.copy() 常用copy寫法
lst2 = lst1[ : ] 字符串切片寫法
對拷貝出來的對象進行操作不會影響原對象
列表數據被存儲時是被存儲的"地址"(類似指針)的東西,並非數據本身,所以會存在賦值和copy的差異問題
深拷貝 有別於淺拷貝,對內部所有層級的內容進行拷貝
import copy
lst1.deepcopy( )
爲什麼有深淺拷貝?
拷貝比創建對象的過程更快