列表
- 任意對象的有序集合
- 通過偏移讀取
- 可變長度、異構(gòu)和任意嵌套
- 屬于可變序列的分類
- 對象引用數(shù)組
實際應(yīng)用中的列表
- len()
- in
- for _ in
- 列表表達式
- append()
- 索引
- 分片
- 矩陣(嵌套)
原處修改列表
索引與分片的賦值
被賦值的序列長度不一定要與賦值的分片長度相匹配,所以分片賦值可以用來替換,覆蓋,增長,插入,縮短和刪除。
列表方法調(diào)用
- append()
- sort()
- pop()
- extend()
- reverse()
- index()
- insert()
- remove()
- del
字典
- 通過鍵而不是偏移來讀取
- 任意對象的無序集合
- 可變長、異構(gòu)、任意嵌套
- 屬于可變映射類型
- 對象引用表(散列表):key 一定要是可散列的。
常用方法:
- keys()
- values()
- items()
- copy()
- get()
- update() 合并
- .pop() 將返回被刪掉的value
- len()
- del 沒有返回值
- list(D.keys())
- 列表解析
- Key in dict
實際應(yīng)用中的字典
字典內(nèi)鍵與輸入書序無關(guān)。
字典用法注意事項
- 序列運算無效
- 對新索引賦值會添加項
- 鍵不一定總是字符串
- 使用get方法避免獲取不存在的key
- 可以把字典當成一種記錄(即記錄每一項信息)
創(chuàng)建字典的方法
In [170]: d={}
In [171]: d={'a':1}
In [172]: d=dict(name=1)
In [173]: d
Out[173]: {'name': 1}
In [174]: d=dict([('name',1),('age',2)])
In [175]: d
Out[175]: {'name': 1, 'age': 2}
In [179]: d=dict(zip(['a','b','c'],[1,2,3]))
In [180]: d
Out[180]: {'a': 1, 'b': 2, 'c': 3}
In [181]: d={k:v for (k,v) in zip(['a','b','c'],[1,2,3])}
In [182]: d
Out[182]: {'a': 1, 'b': 2, 'c': 3}
In [183]: d=dict.fromkeys(['a','b','c'],0)
In [184]: d
Out[184]: {'a': 0, 'b': 0, 'c': 0}
In [185]: d=dict.fromkeys('abc')
In [186]: d
Out[186]: {'a': None, 'b': None, 'c': None}
字典視圖
字典的keys方法返回的類似集合,支持交集、并集這些操作。但是values方法不是集合,因為他們不是唯一的。items返回的也是集合。
In [187]: d={k:v for (k,v) in zip(['a','b','c'],[1,2,3])}
In [188]: d
Out[188]: {'a': 1, 'b': 2, 'c': 3}
In [189]: d.keys()&d.keys()
Out[189]: {'a', 'b', 'c'}
In [192]: d.keys()&{'b'}
Out[192]: {'b'}
In [193]: d.keys()&{'b':1}
Out[193]: {'b'}
In [194]: d.keys()&{'b':1,'d':100}
Out[194]: {'b'}
排序字典鍵
拿出字典的list(keys)進行排序。