list、tuple、dict、set、map

list

  • Python內置的一種數據類型是列表。php

  • list是一種有序的集合,能夠隨時添加和刪除其中的元素。java

# 建立list
classmate = ['micheal', 'Bob', 'Tracy']

#打印長度
len(classmate)

#訪問其中的元素
classmate[0]
classmate[-1]

# 向指定位置插入元素
classmate.insert(1, 'Jack')

#刪除list尾部的元素
classmate.pop()

#刪除list指定位置的元素
classmate.pop(1)

#list中的元素的類型能夠不一樣
L = ['Apple', 123, True]

#list中能夠有另外一個list
s = ['python', 'java', ['asp', 'php'], 'scheme']
#或者
p =  ['asp', 'php']
s = ['python', 'java', p, 'scheme']

tuple

  • 另外一種有序列表叫元組:tuple。python

  • tuple一旦初始化就不能再修改算法

  • 由於tuple不可變,因此代碼更安全,沒有append、insert這樣恩方法。安全

  • 元素獲取的方法和list相同。app

  • 若是可能,能用tuple的地方儘可能不實用list。code

#定義tuple
t = (1, 2)
#定義空tuple
t = ()

#只有一個元素的tuple,必須加 ,!!!!
t = (1, )

#可變的tuple
t = ('a', 'b', ['A', 'B'])
t[2][0]='X'
t[2][1]='Y'

dict

  • dict:字典,全程dictionary,其餘語言中也叫作map對象

  • 存儲方式爲:key-value,鍵值對的方式。內存

  • key不容許重複,不然,後定義的值會覆蓋前面定義的值rem

# 定義一個dict
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

# 添加元素
d['Adam'] = 67

# 判斷key是否存在
'Tomas' in d

# 若是不存在,則返回null
d.get('Thomas')
# 若是不存在,則返回-1
d.get('Thomas', -1)

# 刪除一個元素
d.pop('Micheal')
  • 和list相比,1)dict查找和插入速度很快,不會隨着key的增長而增長。2)須要佔用大量的內存。

  • 這是由於dict根據key來計算value的存儲位置,若是每次計算相同的key得出的結果不一樣,那dict內部就徹底混亂了。這個經過key計算位置的算法稱爲哈希算法(Hash)。


set

  • 不能重複的list。

  • 建立一個set,須要一個list做爲輸入集合。

# 建立一個set
s = set([1, 1, 2, 2, 3, 3])

# 添加元素
s.add(key)

# 刪除元素
s.remove(key)

# set能夠當作是集合
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
# 集合的交集
s1 & s2
# 集合的並集
s1 | s2

不可變對象

  • 對於不變對象來講,調用對象自身的任意方法,也不會改變該對象自身的內容。相反,這些方法會建立新的對象並返回,這樣,就保證了不可變對象自己永遠是不可變的。
相關文章
相關標籤/搜索