日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python基础概念_7_数据结构

發布時間:2024/9/27 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python基础概念_7_数据结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據結構

8 數據結構

8.1簡介

數據結構是什么?它是計算機存儲、組織數據的方式。Python 中有常用的數據結構: 列表、元組、字典和集合。

8.2?列表

列表(list)是一種按順序存儲的數據結構。

8.2.1?列表簡介

還是那句話,計算機是對現實的抽象,讓我們從身邊找些數據結構的例子吧。

上面的這幅圖是我們常見的排隊的例子,先來的乘客排在前面,后面的緊跟其后。那么我們將這種結構抽象起來,它就是隊列:一種按照順序組織的結構。讓我們回顧下排隊時可能會有哪些場景:

??場景一:乘務員站按照離車門最近的順序檢票,此時每檢完一個,隊列里就少一個人。

??場景二:乘務員說后來的同志請站在隊列的后面,此時隊列里又多了人。

??場景三:乘務員說大家按照個子大小排個隊,排好了我再檢票。

??場景四:乘務員看排在第五位的人可疑,就沒按照順序檢票,而是直接問那個人“這位同志你的票呢?”

??場景五:乘務員說“這位抱小孩的先檢票吧,各位理解下”

??……

通過乘務員檢票的方式,我們不能抽象出隊列有如下幾類常用的方法:

增加元素、刪除元素、元素排序、索引訪問、插入等等。

8.2.2?列表常用方法

這里我們通過一個簡單的例子來揭開列表的神秘面紗。假設我們定義一個我的朋友軍訓的列表叫Myfriends,具體操作見下:

#增加、插入、刪除元素

MyFriends=['hanmeimei','tom','lilei','polly','jim']

print("我當前朋友的排列順序是:\t"+str(MyFriends))

MyFriends.append('lily')

print("我當前朋友的排列順序是:\t"+str(MyFriends)+"新增的lily在最后")

MyFriends.insert(2,'lucy')

print("lucy插到第三個位置后,我當前朋友的排列順序是:\t"+str(MyFriends))

?

?

#訪問List里的元素

print("我當前朋友排在第一個的是:\t"+str(MyFriends[0]))

print("我當前朋友排在最后一個的是:\t"+str(MyFriends[-1]))

#注意這里是左閉右開,即右邊取不到

print("截取后,我當前朋友的排列順序是:\t"+str(MyFriends[2:-1]))

print("我當前朋友的排列的長度是:\t"+str(len(MyFriends)))

?

?

forfriend in MyFriends:

??? print(str(friend)+"排在第"+str(MyFriends.index(friend)+1)+"位"+",它對應的索引號是"+str(MyFriends.index(friend)))

?

#刪除指定的元素lucy

MyFriends.remove('lucy')

print("刪除lucy后,我當前朋友的排列順序是:\t"+str(MyFriends))

MyFriends.pop()

print("pop最后一個元素后,我當前朋友的排列順序是:\t"+str(MyFriends))

delMyFriends[3]

print("刪除第4個元素后,我當前朋友的排列順序是:\t"+str(MyFriends))

?

?

#排序、反轉

MyFriends.reverse()

print("反轉后,我當前朋友的排列順序是:\t"+str(MyFriends))

?

MyFriends.sort()

print("排序后,我當前朋友的排列順序是:\t"+str(MyFriends))

來張表格更直觀些:

函數名

功能介紹

示例

append

在列表后追加元素

lista.append('lily')

insert

在指定位置增加元素

lista.insert(2,'lucy')

extend

通過另外個list擴充當前list

lista.extend(listb)

remove

刪除list里指定的元素

lista.remove('lucy')

del

刪除list里的元素或則整個list

del lista[2]

del lista

pop

刪除list里最后一個元素

lista.pop()

reverse

list里的順序逆轉

lista.reverse()

sort

list里的元素排序

lista.sort()

max

list里的最大值

max(lista)

min

list里的最大值

min(lista)

len

list的長度

len(lista)

count

list里某個元素出現的次數統計

lista.count('lucy')

index

list里某個元素出現的索引號

lista.index('lucy')

cmp

比較兩個列表的元素

cmp(lista,listb)

list

將一個元組轉為list

list(tupleA)

……

……

……

8.3?元組

理解了列表,那么元組(tuple)就很好理解,它跟列表很類似,但不能修改元素的值。打個比方,元組是中國的一段朝代順序表dynasty: 唐、宋、元、明、清,那么顯然這個列表是不能更新的,順序一致都是這樣,除非時光可以倒流。

一般我們這樣元組定義:

tuplea =('abcd', 786 , 2.23, 'john', 70.2 ),這里元素通過小括號(“()”)包裹起來,而列表則是通過中括號包(“[]”)裹起開。

鑒于元組類似于列表,這里不做詳細展開。如下附錄了元組里常用的方法:

函數名

功能介紹

示例

cmp

比較兩個元組里的元素

cmp(tuplea,tupleb)

del

刪除整個tuple

del tuplea

max

tuple里的最大值

max(tuplea)

min

tuple里的最小值

min(tuplea)

len

tuple的長度

len(tuplea)

tuple

list轉tuple

tuple(lista)

……

……

……

8.4?字典

字典(dictionary)是一種靈活的通過key=>value(鍵值)來存儲數據的結構。

8.4.1?字典簡介

這里有一個最容易理解的例子就是我們的身份證號,它就相當于一個key,通過他可以找到你的姓名,年齡,地址等信息。這里為了簡單,我們僅僅假設key是身份證號,value是姓名,這個簡單的字典就叫id.當然如果你對之前的list章節理解了,其實你可以假設這里的key是身份證,而value是一個list,它里面有元素:姓名、年齡、地址等。好了,圍繞這個字典id,我們能想到它的哪些特點呢?

首先身份證號是唯一的

其次這里的身份證號是不可以變的,即便戶口遷了,身份證還是沒變

再有身份證號對應的姓名是可以重復的

一般我們通過key:value,然后以大括號包裹起來定義一個字典:

dicta = {'Alice':'2341', 'Beth': '9102', 'Cecil': '3258','John': '3258'}

dictb = {'Alice':'2341', 'Beth': '9102', 'Cecil': '3258'}

8.4.2?字典常用方法

這里通過表格列舉下字典里常用的方法:

函數名

功能介紹

示例

str

以字符串形式顯示字典

str(dicta)

cmp

比較兩個字典里的元素

cmp(dicta,dictb)

copy

返回一個字典的拷貝

dicta.copy()

clear

清空dict里的所有元素

dicta.clear()

get

通過key找對應的value,如果沒有可指定默認值

dicta.get('lily',default= '莉莉')

has_key

判斷字典里是否有某個key

dicta.has_key('lily')

values

以列表形式返回字典里的元素

for i in dicta.values:

??? print(i)

keys

以列表形式返回字典里的鍵

for i in dicta.keys:

??? print(i)

update

把另外個字典里的鍵/值對更新到當前字典里

dicta.update(dictb)

8.5?集合

集合是無序的數據的組合。它跟list 很像,但是set的元素沒有重復,而且是無序的。

8.5.1?集合簡介

這里集合不是個新概念,它對應數學里的集合,可以進行交、差、并等操作。

一般我們通過set關鍵字結合小括號、中括號來定一個一個集合:

seta =set(['A', 'B', 'C'])

集合一般分為兩類:可變集合(set)和不可變集合(frozenset)

可變集合可對集合內元素進行改變,而不可變集合則不行。

8.5.2?集合常用方法

函數名

功能介紹

示例

add

像集合里添加元素

s = set('beginman')

s.add(0)

update

更新集合

s.update('MM')

remove

刪除集合的里的指定元素

s.remove('D')

|/union

兩個集合的并集

s1=set('begin')

s2=set('man')

s3=s1|s2

s4= s1.union(s2)

&/intersection

兩個集合的交集

s1=set('begin')

s2=set('man')

s3=s1&s2

s4=s1.intersection(s2)

-/difference

兩個集合的補集

s1=set('begin')

s2=set('man')

s3=s1-s2

s4=s1.difference(s2)

list

集合轉list

s1=set('begin')
list(s1)

tuple

集合轉tuple

s1=set('begin')
tuple(s1)

str

集合的字符串表示

s1=set('begin')
str(s1)

copy

返回一個集合的拷貝

s1=set('begin')

s1.copy()

issubset

判斷一個集合是另外個的子集

s1=set('begin')

s2=set('man')

s1.issubset(s2)

clear

清空集合里的元素

s1=set('begin')

s1.clear()

pop

刪除集合中任何一個元素,并返回它

s1=set('begin')

s1.pop()

discard

如果是集合中的元素就刪除它

s1=set('begin')

s1.discard()

8.6?總結

通過本章的學習我們知道了Python 內建的數據結構以及他們的常用方法,這些數據結構將是編寫程序時至關重要的組成部分。

總結

以上是生活随笔為你收集整理的Python基础概念_7_数据结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。