python基礎系列 三 之高階資料結構

2021-07-23 08:42:43 字數 4111 閱讀 7109

引言:

在python中,諸如列表,字典,集合,元組的用法十分靈活。特別是區別於傳統的陣列的概念。傳統的陣列一般只能儲存同一型別的資料,而python中的資料結構更像是乙個可以容納任意型別資料的容器。

一.列表型別

1.建立列表

1)建立普通列表

member=[『a』,』b』,』c』]

2)建立乙個混合列表

mix=[1,』afad』,3.14]

3)建立乙個空列表

empty=

2.基本方法

len(iterable) 列表長度

extend(iterable)擴充套件列表

insert(postion,param1)向某個位置插入乙個元素

delete(postion)從列表中刪除某個元素

remove(param1)刪除某個元素,如果這個元素不在列表中,則報錯

del 表示式|元素

pop()列表是棧實現,預設刪除最後乙個

pop(index)從列表中刪除第index個位置的元素

clear()清空列表

3.特殊操作

1)分片操作

iterable[p1:p2]

抽取出索引值在p1-p2之間的所有元素並組成新列表

2)成員操作

not in ,in操作

3)列表推導式

number=range(1,5)

oddnumber=[x for x in

number

if x%2]

4.列表之bif(內建函式)

count(param1)檢視某個元素在某個列表中出現的次數

index(param1,[,postion1][,postion2])檢視某個元素在列表中的索引

reverse()將列表反轉

sort(reverse=true)預設是reverse=true對列表進行從小到大排序

二.元組tuple

元組的一般形式是(p1,p2,p3,…pn),存放的都是元素內容是不變的,而且從形式上看和一維向量的表現形式是一樣的。元組是一種不可修改,固定的列表

1)建立元組

tuple1=(1,2,3,4,5)

2)常用方法

[p1:p2] 切片(與列表相似)

del tuplename 刪除元組

3)特殊用法

元組推導式

k=(p1,p2,p3,p4)

s=(x for x in k [condition])

三.集合

數學中集合是一組型別相同的無序,不可重複的列表

1.建立集合

1)從 {}中建立: setname=

2)set()工廠方法 set1=set([1,2,34,37])

2集合常見操作

1)如何訪問集合元素

使用for把集合中的元素逐個讀取出來

使用in,not in 成員函式判斷元素是否在集合中

2)如何進行增刪

add(param)新增元素

remove(param)刪除元素

frozenset(set)將集合變成不可變集合(不可進行增刪等操作)

3.特殊用法

集合推導式

k=

s=

四.字典

鍵值對的無序集合(鍵必須是不可變的)

1.建立字典

1)dictname=

2)fromkeys(keys[,value])

dict={}

dict.fromkeys((1,2,3),'number')

2.常用方法

keys() 鍵的集合

values() 值得集合

items() 鍵值對的集合

get(index[,de****tvalue]) 獲得某鍵所對應的值

in,not in 判斷成員

clear() 清空字典

copy()拷貝字典(深拷貝)

setdefault(key,value)如果鍵對應的值不存在則設定為value,否則無用

dict[key]=value

五.引用型別常見bif總結

1.list() 把乙個可迭代物件轉化為列表

a=list()

b="i love you "

a=list(b)

2.tuple()把乙個可迭代的物件轉化為元組

3.len(iterable)序列長度

4.reversed(iterable)對序列或者集合進行反轉返回迭代器的物件

5.enumrate()列舉用法

number=[1,2,3,4]

list(enumerate(number))

結果如下:

[(0,1),(1,2),(2,3),(3,4)]

exp2:

for index,value

in enumerate(number):

print(index,value)

6.max(iterable)|min(iterable)求序列或者集合中的最值

7.sum(iterable)返回序列或者集合的總和

8.sorted(iterable,keyfunction,reversed=false)

1)對字典進行排序

import operator

dictname=

"""預設公升序排序

"""sorted(dictname.items(),key=operator.itemgetter(1))

還有另外一種方式改寫key函式key=lambda k:k[1],同樣的效果(這種更通用)

2)根據物件的某個屬性進行排序

class

t:def

__init__

(self,h,size):

self.h=h

self.size=size

t=t(1,2)

t1=t(3,5)

t2=t(3,4)

s=[t,t1,t2]

#根據類t的h屬性進行排序

sorted(s,key=lambda j:j.a)

3)對多個關鍵字進行排序

class

t:def

__init__

(self,h,size):

self.h=h

self.size=size

t=t(1,2)

t1=t(3,5)

t2=t(3,4)

s=[t,t1,t2]

#先根據t的h屬性進行排序,如果h屬性值相同,則根據size屬性進行排序

sorted(s,key=lambda j:(j.h,h.size))

python基礎之高階函式(下)

高階函式是滿足下列條件之一的即為高階函式。高階函式的引入 1 1 定義乙個函式,將指定列表中的偶數,儲存到乙個新的列表中。list list range 1 11,1 deffn a new list for i in list if i 2 0 return new list print fn l...

CSS基礎之高階

今天是學習css的第二天,進一步學習了盒模型 text文字 背景 浮動的四個屬性,其中浮動最是重點。盒模型 padding border margin padding top 20px 上 padding right 30px 右 padding bottom 20px 下 padding left...

Python之高階函式

一 什麼是高階函式 函式作為實參傳遞給函式的或者函式名為返回值的函式稱為高階函式。1 實參傳遞給函式 2 函式名為返回值 二 系統內建的高階函式 1 map函式 至少需要兩個引數,第乙個引數是函式名,第二個引數是序列 str,list,tuple map功能 把序列中的每乙個元素作為引數,傳給函式進...