python內置數據結構

1、列表--是一個序列,用於順序的存儲數據

列表的定義與初始化

In [374]: lst = list()

In [375]: lst
Out[375]: []

In [376]: lst = []

In [377]: lst = [1,2,3]

In [378]: lst
Out[378]: [1, 2, 3]

In [379]: lst = list(range(1,10))

In [380]: lst
Out[380]: [1, 2, 3, 4, 5, 6, 7, 8, 9]


訪問列表元素

In [380]: lst
Out[380]: [1, 2, 3, 4, 5, 6, 7, 8, 9]

In [381]: 

In [381]: 

In [381]: lst[0]
Out[381]: 1

In [382]: lst[-1]
Out[382]: 9

In [383]: lst.index(5)
Out[383]: 4

In [384]: 

In [384]: lst = [1,2,3,2,4,3,5]

In [385]: lst.index(2)    # index 方法返回查找到的第一個索引
Out[385]: 1

In [386]: lst.index(2,2)
Out[386]: 3

In [387]: lst.index(2,2,5)
Out[387]: 3

In [388]: lst.index(2,-4,-1)
Out[388]: 3

In [389]: lst.count(2)
Out[389]: 2

In [390]: lst.count(3)
Out[390]: 2
  • 通過索引訪問元素

  • index方法根據值返回第一個索引

  • count方法返回元素在列表裏的個數


列表元素的修改

In [391]: lst
Out[391]: [1, 2, 3, 2, 4, 3, 5]

In [392]: lst[2]
Out[392]: 3

In [393]: lst[2] = 5

In [394]: lst
Out[394]: [1, 2, 5, 2, 4, 3, 5]

In [395]: lst[2] 
Out[395]: 5


列表元素的增加

In [396]: lst
Out[396]: [1, 2, 5, 2, 4, 3, 5]

In [397]: lst.append(19)

In [398]: lst
Out[398]: [1, 2, 5, 2, 4, 3, 5, 19]

In [399]: lst.insert(0,20)

In [400]: lst
Out[400]: [20, 1, 2, 5, 2, 4, 3, 5, 19]

In [401]: lst.insert(-1,'b')

In [402]: lst
Out[402]: [20, 1, 2, 5, 2, 4, 3, 5, 'b', 19]

In [403]: lst.insert(100,'a')

In [404]: lst
Out[404]: [20, 1, 2, 5, 2, 4, 3, 5, 'b', 19, 'a']

In [405]: lst.insert(-100,'a')

In [406]: lst
Out[406]: ['a', 20, 1, 2, 5, 2, 4, 3, 5, 'b', 19, 'a']

In [407]: 

#insert 當索引超出範圍時,索引是負數 會在第0個元素前插入,索引是正數 會在最後一個元素後插入

In [407]: lst.extend([1,2,3])

In [408]: lst
Out[408]: ['a', 20, 1, 2, 5, 2, 4, 3, 5, 'b', 19, 'a', 1, 2, 3]

#append操作單個元素,extend操作可迭代對象


列表元素的刪除

In [410]: lst
Out[410]: [1, 2, 3, 2, 4, 3, 5, 3, 4]

In [411]: lst.remove(1)

In [412]: lst
Out[412]: [2, 3, 2, 4, 3, 5, 3, 4]

In [413]: lst.pop()
Out[413]: 4

In [414]: lst
Out[414]: [2, 3, 2, 4, 3, 5, 3]

In [415]: lst.pop(4)
Out[415]: 3

In [416]: lst
Out[416]: [2, 3, 2, 4, 5, 3]

In [417]: lst.clear()

In [418]: lst
Out[418]: []


其他操作

In [419]: lst = list(range(4))

In [420]: lst
Out[420]: [0, 1, 2, 3]

In [421]: len(lst)
Out[421]: 4

In [422]: 

In [422]: lst
Out[422]: [0, 1, 2, 3]

In [423]: lst.reverse()

In [424]: lst
Out[424]: [3, 2, 1, 0]

In [425]: 

In [425]: lst.sort()

In [426]: lst
Out[426]: [0, 1, 2, 3]

In [427]: lst.sort(reverse=True)

In [428]: lst
Out[428]: [3, 2, 1, 0]

In [429]: 

In [429]: lst
Out[429]: [3, 2, 1, 0]

In [430]: lst2 = lst

In [431]: lst2
Out[431]: [3, 2, 1, 0]

In [432]: lst2[1] = 5 

In [433]: lst2
Out[433]: [3, 5, 1, 0]

In [434]: lst
Out[434]: [3, 5, 1, 0]

In [435]: 

In [435]: lst2 = lst.copy()

In [436]: lst2
Out[436]: [3, 5, 1, 0]

In [437]: lst
Out[437]: [3, 5, 1, 0]

In [438]: lst2[1] = 7

In [439]: lst2
Out[439]: [3, 7, 1, 0]

In [440]: lst
Out[440]: [3, 5, 1, 0]


2、元組

定義及初始化

In [441]: t = tuple()

In [442]: t 
Out[442]: ()

In [443]: t = ()

In [444]: t 
Out[444]: ()

In [445]: t = (1,2,3)

In [446]: t
Out[446]: (1, 2, 3)

In [447]: t = tuple(range(3))

In [448]: t
Out[448]: (0, 1, 2)

元組是不可變的


查詢

In [449]: t 
Out[449]: (0, 1, 2)

In [450]: t[0]
Out[450]: 0

In [451]: t[-1]
Out[451]: 2

In [452]: t.index(2)
Out[452]: 2

In [453]: t.count(2)
Out[453]: 1


命名元組

In [454]: from collections import namedtuple

In [455]: User1 = namedtuple('A',['name','age'])

In [456]: me = User('martin',18)

In [457]: me
Out[457]: A(name='martin', age=18)

In [458]: me.age
Out[458]: 18

In [459]: me.name
Out[459]: 'martin'

In [460]: me[0]
Out[460]: 'martin'

In [461]: me[1]
Out[461]: 18


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章