在使用索引時,太大的索引會導致錯誤,而用於切片時,超出範圍的切片索引會被得當處理
>>> a = list('123455')
>>> a[1:34]
['2', '3', '4', '5', '5']
列表
list[::-1] 可直接實現列表逆序
list.append() 可將元素添加到尾部
list1.extend(list2) 將一個列表合併到另一個列表,等同於+=
list.insert(int,item) 在int偏移量處插入元素,如果超過了尾部,則直接添加在列表最後
list.reverse() 反轉列表元素
reversed(list)函數也可以反轉列表
刪除列表元素
del語句刪除指定位置元素
del list[-1] #刪除列表尾部元素
list.remove(item)刪除指定值的元素,刪除列表中第一個等於item的元素
>>> mylist = ['a','b','a']
>>> mylist.remove('a')
>>> mylist
['b', 'a']
list.pop(int)獲取返回並刪除指定位置的元素,int參數默認爲-1
list.count(item) 記錄特定值出現在列表中的次數
使用str.join(list)轉換爲字符串
重排元素
列表方法list.sort()對原列表重排,改變原列表的內容
函數sorted(iterable)返回排序好的列表,原列表不變
排序要求列表爲同一類型,或者可以自動轉換——整數或浮點數
默認排序爲升序,可以指定reverse=True參數,改爲降序
列表賦值
如果將列表賦值爲多個變量,修改任意變量會造成其他變量對應的值也被修改
多個變量實際都是指向一個對象
複製列表
list.copy()
a = b.copy()
list()轉換函數 a = list(b)
列表分片 a = b[:]
元組
元組,不可變序列,tuple()
構造包含0個或1個元素的元組
空的元組通過一對空的圓括號構造;
只有一個元素的元組通過一個元素跟隨一個逗號構造(僅用圓括號把一個值括起來是不夠的)
通用序列操作
x in s 如果s包含x,返回True,否則返回Falsex not in s 如果s包含x,返回False,否則返回True
len(s) s的長度
min(s) s的最小項
max(s) s的最大項
sum(s,[initial]) 各項的和,initial爲初始值
all(s) 檢查s中各項是否爲True
any(s) 檢查s中的任一項是否爲True
s*n 相當於將s添加到自身n次
字典
字典{},dict()可將包含雙值子序列的序列轉化爲字典
字典的鍵爲不可變類型
>>> seq = [['a','b']] #(['a','b']) | ['ab']
>>> dict(seq)
{'a': 'b'}
dict1.update(dict2)合併字典
如果dict1和dict2含有同樣的鍵,新值會取代原值
dict.get(key,def_values)獲取key鍵的值,如果沒有key鍵,則返回default_values
dict.setdefault(key,def_values)
如果找到dict[key],則返回dict[key],否則返回def_values,並將dict[key]設置爲def_values
dict.keys() 獲取所有的鍵
dict.values() 獲取所有的值
dict.items() 獲取所有的鍵值對,每個鍵值以元組形式返回
返回爲建值的迭代形式dict_keys([]),dict_values([]),dict_items([ ('k','v'), ])
可使用list()函數將獲取的值轉換爲列表
使用del語句是刪除指定鍵的元素
dict.pop(key[, default]) 如果key在字典中,刪除並返回值,否則返回default,如果沒有default則默認返回None,不會引發KeyError
dict.popitem() 從字典中移除並返回任意一個鍵值對,如果字典爲空,則引發KeyError
dict.clear() 刪除所有元素
in語句判斷某個鍵是否在字典中
使用=賦值,dict.copy()複製
類方法 dict.fromkeys(seq[,value=None]) 以序列seq中的元素作爲鍵,value參數爲值創建一個新字典
集合
集合set爲沒有重複元素的無序容器
可用於成員資格測試或消除重複條目
花括號或set()函數可創建集合
創建一個空集合必須使用set(),{}會創建一個空字典
集合中包含的元素都爲不可變類型
set.add(elem) 添加元素elem到集合
set.remove(elem) 從集合中移除元素elem。如果elem不包含在集合中,引發KeyError
set.discard(elem) 從集合中移除元素elem,如果它存在
set.pop() 從集合中移除並返回任意元素。如果此集合爲空,則引發KeyError
set.clear() 從集合中移除所有元素
邏輯方法
& 或者set.intersection(set)獲取集合的交集
| 或者 set.union(set)來獲取集合的並集
- 或者set.difference(set)來獲得兩個集合的差集
^ 或者set.symmetric_difference(set)來獲取兩個集合的異或集(僅在兩個集合中出現過一次)
<= 或者set.issubset(set)判斷一個集合是否是另一個集合的子集
< 判斷第一個是否是第二個的真子集
>= 超集,>真超集