python入門-4種容器的定義及常用方法

列表容器(list)

列表是一種線性表,由大量的節點組成,每一個節點都可以存儲數據是一個可以存儲大量數據的容器,列表支持位尾部刪除、指定位置刪除和值刪除,但指定位置的插入和刪除要移動很多元素,效率很低
定義

a = list()	   創建一個空列表
b = [1, 2, 4, 5, 7, 10, 99]   創建一個列表(python是弱數據類型語言)

列表的遍歷可用循環語句進行

列表的常用方法
  • append
>>> b.append(100)			在尾部追加一個100的元素
>>> b
[1, 2, 4, 5, 7, 10, 99, 100]
  • clear
>>> b.clear() 				清空容器
>>> b
[]
  • copy
>>> b = [1,2,4,5,7,10,99,10]
>>> a = b.copy()			淺拷貝
>>> a	
[1, 2, 4, 5, 7, 10, 99, 10]
  • count
>>> b.count(10)				統計元素在列表中的個數
2
  • index
>>> b.index(10)				查詢元素在列表中第一次出現的位置,若不存在該元素,則會拋出異常
5
  • insert
>>> b.insert(3,100)3位置插入100元素
>>> b
[1, 2, 4, 100, 5, 7, 10, 99, 10]
  • pop
>>> b.pop()					根據下標位置刪除元素,沒有下表默認刪除最後一個
10
>>> b
[1, 2, 4, 100, 5, 7, 10, 99]
  • remove
>>> b.remove(100)			移除對應的元素,如果列表中不存在該元素,則拋出異常
>>> b
[1, 2, 4, 5, 7, 10, 99]						
  • reverse
>>> b.reverse()				翻轉元素的順序
>>> b
[99, 10, 7, 5, 4, 2, 1]
  • sort
>>> b.sort()				列表的排序(主要針對數字)
>>> b
[1, 2, 4, 5, 7, 10, 99]
  • extend
>>> b						
[1, 2, 4, 5, 7, 10, 99]
>>> a = [3,5,7,8,123,456]
>>> a
[3, 5, 7, 8, 123, 456]
>>> b.extend(a)				合併列表,將a的值合併給b
>>> b
[1, 2, 4, 5, 7, 10, 99, 3, 5, 7, 8, 123, 456]

集合容器(set)

集合顧名思義,集合的特點和數學方面要求一樣,元素必須唯一,不能重複,沒有排序的。
定義

a = set()   空集必須使用全局函數set定義
b = {'nsdbakuihbdaskuidhg'}
集合的常用方法
  • add
>>> a.add(100)						添加元素100
>>> a
{100}
>>> b.add(100)
>>> b
{'nsdbakuihbdaskuidhg', 100}
  • clear
>>> b.clear()						清空容器
>>> b
set()
  • copy
>>> b = a.copy()					淺拷貝
>>> b
{100}
  • difference
>>> a.add(10)
>>> a
{10, 100}
>>> b
{100}
>>> a.difference(b)					求ab差集
{10}
  • discard
>>> a.add(1000)
>>> a
{1000, 10, 100}
>>> a.discard(10)					如果集合中存在該元素,移除元素,如果不存在也不報錯
>>> a
{1000, 100}
  • intersection
>>> a
{1000, 100}
>>> b
{100}
>>> a.intersection(b)				求ab交集
{100}
  • pop
>>> a = {1,2,3,4,5,6,10,100,1000}
>>> a.pop()							隨機移除,若集合爲空,則報錯
1
>>> a
{2, 3, 4, 5, 6, 100, 1000, 10}
  • remove
>>> a = {1,2,3,4,5,6,10,100,1000}
>>> a.remove(100)					移除元素,不存在會報錯
>>> a
{1, 2, 3, 4, 5, 6, 1000, 10}
  • union
>>> a
{1, 2, 3, 4, 5, 6, 1000, 10}
>>> b
{100}
>>> a.union(b)						求ab的並集
{1, 2, 3, 4, 5, 6, 100, 1000, 10}

元組容器(tuple)

元組中的值是不可變的,元組本身也是不可變類型,但是元組中的元素是可變類型,那麼該元組是可變的。在python中,如果要定義元組時只有一個元素,那麼一定要在該元素後面加逗號,否則Python解釋器會將該元組當成一個數字對待。
定義

s = tuple((1,2,3,45,5))
ss = (1,2,3,4,3)
元組的常用方法
  • count
>>> ss.count(3)				統計該元素3出現的個數
2
  • index
>>> ss.index(4)				查詢該元素4出現的位置
3
  • len
>>> len(ss)					計算ss的長度
5
  • max
>>> max(s)					元組中的最大數
45
  • min
>>> min(s)					元組中的最小數
1

字典容器(dict)

字典是非序列式容器,不支持索引、切片,查找效率高,空間佔用較大。Python中的字典類型,key必須是字符串!
定義

d = {key1 : value1, key2 : value2 }
sss = {'abc':123 ,'def':456}

訪問

d[key] = ?  如果key不存在,則會新增這個鍵值對
字典的常用方法
  • clear
>>> sss.clear()						清空容器
>>> sss
{}
  • copy
>>> sss = {'abc':123,'def':456}
>>> ssr = sss.copy()				淺拷貝
>>> ssr
{'abc': 123, 'def': 456}						
  • fromkeys
>>> seq = ('a','b','c')				定義一個元組
>>> dict = dict.fromkeys(seq)		使用元組seq作爲dict的key
>>> dict
{'a': None, 'b': None, 'c': None}
>>> dict = dict.fromkeys(seq,100)
>>> dict
{'a': 100, 'b': 100, 'c': 100}
  • get
>>> dict.get('a')					通過key獲得該key對應的值,如果沒有這個key,則返回None
100
>>> sss.get('abc')
123
>>> sss.get('zzz')
>>>
  • items
>>> dict.items()					成對返回鍵值對
dict_items([('a', 100), ('b', 100), ('c', 100)])
>>> sss.items()
dict_items([('abc', 123), ('def', 456)])
  • keys
>>> dict.keys()						返回字典中所有的key
dict_keys(['a', 'b', 'c'])
>>> sss.keys()
dict_keys(['abc', 'def'])
  • pop
>>> dict.pop('b')					通過key刪除key所對應的值,若key不存在,則拋出異常
100
>>> dict
{'a': 100, 'c': 100}
  • popitem
>>> dict = {'a': 100, 'b': 100, 'c': 100}
>>> dict.popitem()					移除一個鍵值對,按照LIFO(先進後出)原則
('c', 100)
>>> dict
{'a': 100, 'b': 100}
  • values
>>> sss.values()					返回字典中所有的值
dict_values([123, 456])
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章