Python基礎(chǔ)-列表/元組/字典/集合(4)

1.序列(sequence):

序列是py中最基本的一種數(shù)據(jù)結(jié)構(gòu)

可變序列
  • 列表
不可變序列
  • 字符串
  • 元組
序列基本操作:
  • +可以將相同的序列拼接成一個序列
  • *: 將序列重復(fù)指定次數(shù)
  • in : 檢查元素是否存在于指定列表/元組中
  • not in:檢查元素是否不存在指定列表/元組中
list=(12,None,'sh',True,3,5,6)+(5,5)
print(list*5)
print(5 in list)
print( 4 not in list)
幾個函數(shù)
  • max():序列中最大元素
  • min():序列中最小元素
  • index(a,b,c):指定元素在序列中第一次出現(xiàn)時索引,a為查找元素,b為起始索引,c為結(jié)束索引,bc可以省略,如果序列中沒有,則會拋出異常
  • count(a):統(tǒng)計指定元素出現(xiàn)的次數(shù)
list = (5, 3,5,8,9)
print(max('15881'))
print(min(list))
print(list.index(5,1,3))
print(list.count(5))

2.列表(List):

list是py中的一個對象。我們之前學(xué)習(xí)的對象只能保存單一的數(shù)據(jù),列表可以保存多個有序的數(shù)據(jù)。也可以儲存對象的對象。
列表的索引是從0開始的。

列表的創(chuàng)建:
#列表中只有一個元素
list=[12]
#列表中有多個元素,并且元素類型可以不同
list=[12,None,'sh',True]
#通過索引獲取列表中的元素,如果索引超出,則會拋出list index out of range異常
a=list[0] #12
#注意:其也可以逆序訪問,從-1開始
c=list[-2] #sh
# 獲取列表元素數(shù)量
b=len(list)
列表的方法:
  • append() :向列表最后添加元素,依此只能添加一個
  • insert(a,b): 向列表的指定位置插入元素,a為要插入的位置,b為角標(biāo)。需要注意的是,當(dāng)a超出角標(biāo)時,會插入最后一位。其也支持逆序,當(dāng)超出逆序時,會插入第一位。
  • extend(a) :將a序列(列表,元組,字符串)元素添加到當(dāng)前列表最后。如果是字符串,則會將字符串中每一個字符當(dāng)成一個元素。
  • clear(): 清空列表
  • pop(a): 根據(jù)索引刪除并返回被刪除的元素。若沒有指定a角標(biāo),則刪除最后一個
  • del list[a] : 刪除指定角標(biāo)元素
  • remove(): 刪除指定元素,如果列表中有多個相同元素,只會刪除第一個
  • reverse():反轉(zhuǎn)列表
  • sort():對列表進(jìn)行排序,默認(rèn)升序,如果需要降序則需要傳遞 reverse=True 注意:若列表中元素類型不同,則無法排序
list=[12,None,'sh',True]
list.append('s')
list.insert(-8,'a') #之前的0號元素變?yōu)?號
a=[1,4]
list.extend(a)
list.extend('asd')
list.pop(1)
#反轉(zhuǎn)
list.reverse()
#降序
a.sort(reverse=True)
print(list)
list.clear()

切片

指從現(xiàn)有列表中,獲取一個子列表。

  • 語法1: 列表[起始:結(jié)束]
    通過切片獲取元素時,會包括起始位置,不會包含結(jié)束位置。
    切片不會影響原有列表,會返回一個新列表。
    若省略開始位置,則默認(rèn)從頭開始截取
    省略結(jié)束位置,則默認(rèn)截取到最后
    若起始和結(jié)束都省略,等于創(chuàng)建了一個列表副本
list=[12,None,'sh',True]
print(list[1:3])
print(list[1:])
print(list[:3])
  • 語法2:列表[起始:結(jié)束:步長]
list=[12,None,'sh',True,3,5,6]
print(list[1:6:2])
print(list[1:6:-1])
#相當(dāng)于逆序隔兩個打印
print(list[::-2])

3.元組(tuple)

元組是一個不可變序列,其操作方式基本與列表一樣,但是少了列表中的增刪改方法。但是元組創(chuàng)建時,有幾個特殊。

list0=()
# 只有一個元素時,必須加,不加就是一個int類型變量
list = (5,)
# 當(dāng)元組不是空元組時,括號可以省略
list1=5,3,5
print(type(list0))
元組的解包(解構(gòu))

解包就是將元組當(dāng)中每一個元素都賦值給一個變量
每一次解包里面,最多可以有一個帶*號的變量。他其實就是一個list,他將解包中沒有對應(yīng)的元素放入列表中。

list=1,3,4,5,
a,b,c,d,=list
a,*b=list # b= 3,4,5
a,*b,c=list #b=3,4
print(b)

4.字典(dict)

字典是一種映射的數(shù)據(jù)結(jié)構(gòu),列表存儲數(shù)據(jù)的性能很好,但是查詢數(shù)據(jù)的性能很差。
字典中每一個元素都有唯一的名字,通過過指定的key值可以快速找到value,因此,查詢元素時,字典的效率是非??斓摹W值渲杏卸鄠€鍵值對,每一個鍵值對稱位item
字典的值可以是任意對象, 字典的鍵可以是任意的“不可變對象” ,一般使用str

# 創(chuàng)建字典
a=(1,3)
#方式1,因為元組也是不可變的,因此可以作為鍵
dictionnary={'name':'h',a:[1,3,'s']}
#使用dict()函數(shù)創(chuàng)建字典,對應(yīng)的鍵都是str
dictionnary1=dict(name='hha',age='15')
# 根據(jù)鍵獲取值,若鍵值不存在則報錯
b=dictionnary1['name']
#獲取字典鍵值對個數(shù)
len(dictionnary1)
#in/not in 檢查字典中是否包含指定的鍵
print('name' in dictionnary1)
#如果字典中存在此鍵則覆蓋value值,若沒有則添加鍵值對
dictionnary1['name']='54'
常用函數(shù):
  • get(key,default): 通過key獲取value
  • setdefault(key,default): 向字典中添加鍵值對,如果key存在則返回value值,若不存在則添加此鍵值對
  • update(dict):將其它字典的添加到當(dāng)前字典,若有重復(fù)鍵,則添加的會覆蓋之前的。
  • del dict['key']:刪除指定鍵值對
  • popitem():刪除最后一個鍵值對,刪除之后返回的是包含兩個元素的元組,第一個是刪除的key,第二個是刪除的value。 當(dāng)字典為空時,會拋出異常。
  • pop(key,default) :刪除指定的key,default可以省略,如果指定了default默認(rèn)值,則key不存在時不會報錯,直接返回default
  • clear():清空字典
  • copy():對字典進(jìn)行淺拷貝,復(fù)制以后的對象時相互獨(dú)立的。
a=(1,3)
dictionnary={'name':'h',a:[1,3,'s']}
dictionnary.get('name')
dictionnary.setdefault('age',18)
dictionnary.update({'sex':'man'})
del dictionnary[a]
dictionnary.popitem()
dictionnary.pop('name','None')
b=dictionnary.copy()
b.clear()
dictionnary.setdefault('ss',{'15':77})
#字典嵌套
print(dictionnary['ss']['15'])

5.集合(set)

集合和列表相似,其不同點(diǎn)在于

  • 集合中只能存儲不可變對象
  • 集合中存儲的對象是無序的,非插入有序,但是集合中相同類型元素是有序的
  • 集合中元素不能重復(fù)
set={1,3,6,4,5,'f'}
set=set()#空集合
set=set([1,3,4,5]) #將列表/元組轉(zhuǎn)換為集合
#將字典轉(zhuǎn)換為集合,只會包含鍵
set=set({'name':'he'})
常用函數(shù):
  • len():集合元素個數(shù)
  • add():向集合中添加元素。
  • update():將一個集合/序列/字典中的元素添加到當(dāng)前集合中。
  • pop():隨機(jī)刪除并返回集合中的元素
  • remove(value):刪除集合中指定元素
  • clear():清空集合
  • copy():淺拷貝
set={1,3,6,4,5,'f'}
len(set)
set.add(7)
set.update([2,3,5,3])
set.pop()
set.remove(3)
print(set)
set.clear()

集合的運(yùn)算

在對集合做運(yùn)算時,不會影響原來的集合,會返回一個新的結(jié)果。
如果a集合中的元素全部都在b集合中出現(xiàn),那么a集合就是b集合的子集,b集合是a集合超集

  • &:交集運(yùn)算
  • | :并集運(yùn)算
  • -:差集運(yùn)算
  • ^ :異或集:獲取只在一個集合中出現(xiàn)的元素
  • <=:檢查一個集合是否是另一個集合的子集
  • <:檢查一個集合是不是另一個集合的真子集
  • > : 檢查一個集合是不是另一個的真超集
  • >=:檢查一個集合是否是另一個的超集
a={1,4,5,7}
b={1,4,5,7,3,6}
print(a&b) #{1, 4, 5, 7}
print(a|b) #{1, 3, 4, 5, 6, 7}
print(a^b) #{3, 6}
print(a<=b) #True
print(a<b) #True
print(a>b) #False
print(a>=b)  #False
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容