1. 程式人生 > >PYTHON 列表&元組&字典&集合

PYTHON 列表&元組&字典&集合

列表(list)

  • 有序性,可儲存任意型別的值
  • 通過偏移存取,支援索引來讀取元素,第一個索引為0 ,倒數第一個索引為-1
  • 可變性 ,支援切片、合併、刪除等操作
  • 可通過索引來向指定位置插入元素
  • 可通過pop()方法刪除末尾元素,pop(索引位置)來刪除指定位置元素
  • 替換元素可直接通過賦值給對應的的索引位置
classMates = ['zhangsan','lisi','wangwu']
print(classMates[0])  #通過索引來獲取元素
print(classMates[-1])  #列表元素的所因為-1的為最後一個元素
classMates.append('chenliu')   #在列表末尾追加元素
print(classMates)
classMates.insert(1,'chenyi')  #通過insert函式 用索引號來指定插入元素位數
print(classMates)
classMates.pop()  #彈出元素 預設為最後一個元素
print(classMates)
classMates.pop(1) #通過指定索引刪除元素
print(classMates)
classMates[0] = 'sanduo' #通過賦值,直接把索引為0的元素給替換掉
print(classMates)

s = ['python',123,True]  #列表可以存放不同資料型別的元素
L = ['man','woman',['python',123,]]  #列表元素也可以為其他列表
print(L)


L = [
    ['Apple', 'Google', 'Microsoft'],
    ['Java', 'Python', 'Ruby', 'PHP'],
    ['Adam', 'Bart', 'Lisa']]
print(L[0][0])  #通過索引來列印元素Apple

元組(tuple)

  • 有序性,和列表一樣通過偏移存取,支援用索引來讀取元素
  • 不可變性,不支援任何修改及任何呼叫
  • tuple可作為字典的key,可用於字串格式化中
classMates = ('lisa','rom','bobi')
t = (1,)  #在顯示只有一個元素的元組時,會在後面加一個逗號
print(t)

字典 (dictionary)

  • 無序可變的,屬於科扁對映型別
  • 採用鍵值對(key-value )進行儲存,查詢速度較快
  • 可以通過pop.() 來進行刪除鍵,所對應的value也會被刪除
  • 除了初始化字典時存放資料,還可通過 dict['key'] = value 來存放
  • 鍵為固定的不可變的,只能對應一個value,多次對一個key放入value,後面的值被頂替前面的值
  • 需要佔用大量記憶體 ,浪費記憶體
dictOne = {'zhangsan': 95,'lisi': 87,'wangwu':76}
print(dictOne['wangwu'])
dictOne['sanduo'] = 100  #把資料放入dict的方法,除了初始化時指定外,還可以通過key放入
print(dictOne['sanduo']) 
dictOne['sanduo'] = 98  #重複給一個key賦值,後面的值會把前面的值代替
print(dictOne['sanduo'])
dictOne['xiaozhang'] = 67
print(dictOne)
print('sanduo'in dictOne )  #用 in 判斷key在列表中是否存在
print(dictOne.get('sanduo',-1))
print(dictOne.get('wanwu',-1))  #通過get() 如果key不存在,可以返回None,或者自己指定的 value
dictOne.pop('zhangsan')  #通過pop.() 刪除字典的鍵,同時對應的value也會被刪除
print(dictOne) 

集合(set)

  • 無序性、無重複key
  • 建立set,需要提供一個list作為輸入集合
  • 通過add(key)方法新增元素
  • 通過remove(key)刪除元素
  • 不可以放入可變物件例如 list
setFirst = set([2,3,4,6,5])  # 建立set 需要提供一個list作為輸入集合
print(setFirst) 

setSecond = set([1,2,2,3,4,3])  #set 自動過濾掉重複元素
print(setSecond) 
setSecond.add(9)  #通過add.()來新增元素到set中
print(setSecond) 
setSecond.remove(4)  #通過remove.()來刪除元素
print(setSecond)

firstList = [1,2,3,3,3,5,6,6,6,9]
print(list(set(firstList)))   #利用set來過濾掉重複元素 

s1 = set([1,2,3])
s2 = set([2,3,4])
print(s1 & s2)  #做交集運算
print(s1 | s2)  #做並級運算