Sequence序列對(duì)象
lists列表, 元組tuples, and range
通用序列操作:
- item in或not in sequence:判斷item在或者不在序列中
- +或符號(hào):將兩個(gè)序列相加或把一個(gè)序列內(nèi)容復(fù)制n倍, 注意可能得到的是同一對(duì)象的多個(gè)引用
- s[n]:第n個(gè)元素媒峡,超出范圍IndexError
- s[i:j]:第i到j(luò)個(gè)元素的切片笙瑟,包含第i個(gè)不包含第j個(gè)行楞,i為負(fù)數(shù)相當(dāng)于0坛怪,j超范圍相當(dāng)于最多
- s[i:j:k]:第i到j(luò)個(gè)元素間隔k個(gè)取出
- len(s):序列的元素總數(shù)
- min(s)和max(s):按照排序的最小或最大一項(xiàng)
- s.index(x,i,j):ij可選誊涯。序列中x的位置,i和j限定搜索范圍,返回x的位置或ValueError
- s.count(x):s中包含x的重復(fù)數(shù)量,找不到返回0
- for x in s:循環(huán)處理序列中的每一項(xiàng)
- s[i:j] = t:將序列的i到j(luò)項(xiàng)替換為t,如果t為序列則直接元素對(duì)應(yīng)替換皮仁,無(wú)論t數(shù)量多少剃根;如果t為非序列,則i到j(luò)變?yōu)橐粋€(gè)t對(duì)象
- s[i:j]=[]:相當(dāng)于刪除i到j(luò)項(xiàng)(不含j)艰管,等同del s[i:j]
- s.append(x):將x添加到s滓侍,等同s[len(s):len(s)]=[x]
- s.clear():清理所有元素
- s.copy():復(fù)制整個(gè)序列,相當(dāng)于s[:]
- s.extend(t) or s += t:合并兩個(gè)序列蛙婴,相當(dāng)于s[len(s):len(s)] = t
- s.insert(i, x):將x插入到i位置,相當(dāng)于s[i:i] = [x]
- s.pop(i):獲取第i項(xiàng)并從序列中刪除它尔破,如果i省略則指向最后一個(gè)
- s.remove(x):移除x項(xiàng),如果不存在則ValueError
- s.reverse():翻轉(zhuǎn)順序
list列表
- 構(gòu)造方法:[],[1,2,3],[for i in range(10)],list('abc'),list((1,2,3))
>>> sorted((3,2,1))
[1, 2, 3]
>>> list((1,2,3))
[1, 2, 3]
- 負(fù)數(shù)索引從 list 的尾部開(kāi)始向前計(jì)數(shù)來(lái)存取元素街图。任何一個(gè)非空的 list 最后一個(gè)元素總是 li[-1]
- sorted(list, key=None, reverse=False)為列表排序,生成新排序列表
>>> li=[{'a':22},{'a':12},{'a':100}]
>>> sorted(li,key=lambda x:x['a'])
[{'a': 12}, {'a': 22}, {'a': 100}]
- list.sort()將list排序懒构,list必須為基本對(duì)象餐济,不能是容器對(duì)象;而sorted則可以利用key對(duì)更復(fù)雜對(duì)象排序胆剧。
Tuples元組
- 構(gòu)造方法:(a,b),(a,),(a,b,c),tuple([1,2,3])
- 元組一旦創(chuàng)建將不可修改
- Tuple沒(méi)有沒(méi)有append或extend方法絮姆,沒(méi)有 remove 或 pop 方法、沒(méi)有 index 方法秩霍。
- 可以使用 in 來(lái)查看一個(gè)元素是否存在于 tuple 中篙悯。
range
- 構(gòu)造方法:range(start,stop,step),range(10),range(5,50,5);step不能為0
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> list(range(0))
[]
>>> list(range(1, 0))
[]
- range無(wú)論數(shù)字多少,總是占用同樣小的內(nèi)存铃绒。
- range可以比較
>>> range(0, 3, 2) == range(0, 4, 2)
True
range存在.start,.stop,.step屬性
集合類型set
- 集合支持x in set, len(set), and for x in set等語(yǔ)法
- 集合中沒(méi)有重復(fù)元素
- isdisjoint是否完全無(wú)交集
>>> a={1,2,3,4}
>>> b={3,4,5,6}
>>> a.isdisjoint(b)
False
>>> c={5,6}
>>> a.isdisjoint(c)
True
- issubset(other)是否子集鸽照;相當(dāng)于set <= other
- issuperset(other)是否超集;相當(dāng)于set >= other
- union(other)與other合并颠悬;
- intersection(*others)交集
- difference(*others)在此集合但不在other集合
- symmetric_difference(others)不在交集但在此集合或other集合
- copy()復(fù)制集合
- update(*others)將others添加進(jìn)來(lái)
- intersection_update(*others)取交集
- add(elem),remove(elem)添加和移除元素,如果不存在則拋出異常KeyError
- discard(elem)刪除元素,如果不存在不報(bào)錯(cuò)
- pop()任意去掉一個(gè)元素
- clear()清空
字典dict
- Dictionary 是 Python 的內(nèi)置數(shù)據(jù)類型之一, 它定義了鍵和值之間一對(duì)一的關(guān)系矮燎。
- 每一個(gè)元素都是一個(gè) key-value 對(duì), 整個(gè)元素集合用大括號(hào)括起來(lái)
- 您可以通過(guò) key 來(lái)引用其值, 但是不能通過(guò)值獲取 key
- 在一個(gè) dictionary 中不能有重復(fù)的 key定血。給一個(gè)存在的 key 賦值會(huì)覆蓋原有的值
- dictionary 的 key 是大小寫(xiě)敏感的
- Dictionary 的值可以是任意數(shù)據(jù)類型, 包括字符串, 整數(shù), 對(duì)象, 甚至其它的 dictionary。
- 在單個(gè) dictionary 里, dictionary 的值并不需要全都是同一數(shù)據(jù)類型, 可以根據(jù)需要混用和匹配诞外。
- 構(gòu)建方法:{'a':11,'b':22},{11:'22',22:'bb'},鍵只能是索引數(shù)字(正負(fù)數(shù)和小數(shù)都可)或字符串
>>> a = dict(one=1, two=2, three=3)
>>> b = {'one': 1, 'two': 2, 'three': 3}
>>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
>>> d = dict([('two', 2), ('one', 1), ('three', 3)])
>>> e = dict({'three': 3, 'one': 1, 'two': 2})
>>> a == b == c == d == e
True
- len(d)字典屬性數(shù)量
- del d[key]刪除key澜沟,如果不存在則KeyError
- clear(),copy()
- fromkeys(seq[, value])用seq序列做鍵值key峡谊,所有鍵都等于value
- get(key)獲取值茫虽,但不出錯(cuò)
- items(),keys(),values()返回一個(gè)可枚舉的對(duì)象
>>> dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}
>>> keys = dishes.keys()
>>> values = dishes.values()
>>> # iteration
>>> n = 0
>>> for val in values:
... n += val
>>> print(n)
504
>>> # keys and values are iterated over in the same order (insertion order)
>>> list(keys)
['eggs', 'sausage', 'bacon', 'spam']
>>> list(values)
[2, 1, 1, 500]
>>> # view objects are dynamic and reflect dict changes
>>> del dishes['eggs']
>>> del dishes['sausage']
>>> list(keys)
['bacon', 'spam']
>>> # set operations
>>> keys & {'eggs', 'bacon', 'salad'}
{'bacon'}
>>> keys ^ {'sausage', 'juice'}
{'juice', 'sausage', 'bacon', 'spam'}
- pop(key)刪除一個(gè)屬性,不存在的話報(bào)錯(cuò)靖苇;popitem()刪除最后一個(gè)屬性
- setdefault(key[, default])設(shè)置默認(rèn)值,不存在的話自動(dòng)添加
- update(other)更新屬性值席噩,不存在的話自動(dòng)添加