3.Python-列表,元組,字典和集合

列表

Python中列表是一個有序的序列??樟斜?可以用 [] 或者 list() 生成.
列表用一對 []生成,中間的元素用 ', ' 隔開,其中的元素不需要是同一類型,同時列表的長度也不固定。

通過索引和分片修改list

與字符串不同的是,列表可以通過索引和分片來修改。
事實上,對于連續的分片(即步長為 1 ),Python采用的是整段替換的方法,兩者的元素個數并不需要相同

a = [10, 11, 12, 13, 14]
a[1:3] = [1, 2, 3, 4]
a
#out: [10, 1, 2, 3, 4, 13, 14]

對于不連續(間隔step不為1)的片段進行修改時,兩者的元素數目必須一致

a = [10, 11, 12, 13, 14]
a[::2] = [1, 2, 3]
a
#out: [1, 11, 2, 13, 3]

列表方法

列表方法 用法 detail
計算元素個數 l.count(ob) 列表中元素 ob 出現的次數
某個元素位置 l.index(ob) 列表中元素 ob 第一次出現的索引位置,如果 ob 不在 l 中會報錯
添加單個元素 l.append(ob) 將元素 ob 添加到列表 l 的最后
添加序列 l.extend(lst) 將序列 lst 的元素依次添加到列表 l 的最后,作用相當于 l += lst
插入元素 l.insert(idx, ob) 在索引 idx 處插入 ob ,之后的元素依次后移
移除元素 l.remove(ob) 將列表中第一個出現的 ob 刪除,如果 ob 不在 l 中會報錯
彈出元素 l.pop(idx) 將索引 idx 處的元素刪除,并返回這個元素
排序 l.sort() 將列表中的元素按照一定的規則排序
列表反向 l.reverse() 將列表中的元素從后向前排列
拷貝 l.copy 創建列表淺拷貝,深拷貝用copy模塊中的deepcopy()

元組

與列表相似,元組Tuple也是個有序序列,但是元組是不可變的,用()生成。

元組排序:

可以用sorted(a)排序,不會改變元組,a.sort()不可用,回報錯

元組函數和方法

元組函數: len(), max(),min(),tuple(a)
由于元組是不可變的,所以只能有一些不可變的方法,如計算元素個數 a.count() 和元素位置 a.index() 等,用法與列表一樣。

列表與元組的速度比較

元組的生成速度會比列表快很多,迭代速度快一點,索引速度差不多。

字典

</center>
字典是一種映射類型,字典沒有順序,key必須是不可變類型,而value可以是任意python對象,int和string最常用作key,但float不推薦。元組也可以用做key。
Python中不能用支持用數字索引按順序查看字典中的值,而且數字本身也有可能成為鍵值,這樣會引起混淆。

字典操作

常見操作 用法
空字典 使用 {} 或者 dict(),只要元素和元素之間有對應關系都可用dict()
初始化字典 a= {key: value,key: value,...}
插入,更新鍵值 a[key]=value
查看鍵值 a[key]
成員判斷 in
刪除字典成員 del a[key]
轉化來生成字典 通過 dict()
invent = dict([('from', 18), ('spat', 34), ('snit', 23)])
invent
#out: {'from': 18, 'snit': 23, 'spat': 34}

字典方法

列表方法 用法 detail
get d.get(key, default = None) 返回字典中鍵對應的值,如果沒有這個鍵,返回 default 指定的值(默認是 None)。索引不存在的鍵值會報錯,get不會:
pop d.pop(key, default = None) 刪除并返回字典中鍵 key 對應的值,如果沒有這個鍵,返回 default 指定的值(默認是 None )
update d.update(newd) 將字典newd中的內容更新到d中去
in value in d 判斷字典中是否有某個特定的鍵
clear d.clear() 清空字典
key d.keys() 返回一個由所有鍵組成的列表;
value d.values() 返回一個由所有值組成的列表;
items d.items() 返回一個由所有鍵值對元組組成的列表;

例: update()的用法

person = {'born': 1831, 'last': 'Maxwell', 'first': 'Jmes'}
person_modi = {'first': 'James', 'middle': 'Clerk'}
person.update(person_modi)
person
#out: {'middle': 'Clerk', 'born': 1831, 'last': 'Maxwell', 'first': 'James'}

例: items()的用法

barn = {'cows': 1, 'dogs': 5, 'cats': 3}
barn.items()
#out: [('cows', 1), ('cats', 3), ('dogs', 5)]
for key, value in barn.items():

例: 創建員工信息表時,將所有員工工資默認為3000

aDict={}.formatkeys(('A','B','C','D'),3000)
aDict
#out: {'A':3000, 'B':3000, 'C':3000, 'D':3000}

例: 已知姓名列表和工資列表,生成字典類型員工

names=['A','B','C','D']
salaries=[3000,2000,15000,2500]
dict(zip(names, salaries))

集合

集合 set 是一種無序的序列

空集合:

set(), 創建空集合的時候只能用set來創建,因為在Python中{}創建的是一個空的字典

初始化集合:

可以使用一個列表來初始化一個集合a = set(l),集合會自動去除重復元素

集合操作

集合方法 用法 detail
a.union(b)a | b 包含兩個集合所有元素的集合(去除重復)
a.intersection(b)a & b 返回包含兩個集合共有元素的集合
a.difference(b)a - b 返回只在 a 不在 b 的元素組成的集合
對稱差 a.symmetric_difference(b)a ^ b 不同時在 a 和 b 中的元素組成的集合
包含關系 b.issubset(a)b <= a 判斷 b 是不是 a 的子集,判斷真子集用a < a

集合方法

集合方法 用法 detail
add s.add(a) 跟列表的 append 方法類似,用來向集合添加單個元素
update s.update(seq) 跟列表的extend方法類似,用來向集合添加多個元素
remove s.remove(ob) 從集合s中移除元素ob,如果不存在會報錯
pop s.pop() 集合沒有順序,所以刪除并返回集合中任意一個元素,如果沒有元素會報錯
discard t.discard(ob) 作用與 remove 一樣,但是當元素在集合中不存在的時候不會報錯。
difference_update a.difference_update(b) 從a中去除所有屬于b的元素

不可變集合

不可變集合一旦創建就不可變,使用 frozenset() 來進行創建

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,546評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,570評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,505評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,017評論 1 313
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,786評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,219評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,287評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,438評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,971評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,796評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,995評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,540評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,230評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,918評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,697評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容