溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python基礎(chǔ)【數(shù)據(jù)結(jié)構(gòu):列表 | 元組 | 集合 | 字典】

發(fā)布時(shí)間:2020-07-15 00:05:43 來源:網(wǎng)絡(luò) 閱讀:291 作者:流域哈哈 欄目:編程語言

序列


序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)。
包括字符串,列表,元組,Unicode字符串,buffer對象,xrange對象。
序列中的每個(gè)元素都分配一個(gè)數(shù)字,即它的索引
第一個(gè)索引是0,第二個(gè)索引是1,依此類推。


列表和元組

列表
一個(gè)方括號內(nèi)的逗號分隔值
列表中可以存放不同的數(shù)據(jù)類型。

例:[1,1.2,True,'str',[2,False]]
元組
與列表類似,不同之處在于元組的元素不能修改。
元組使用小括號,列表使用方括號。

例:(1,1.2,True,'str',[2,False])


列表和元組的定義

列表的定義
一個(gè)方括號內(nèi)的逗號分隔值
列表中可以存放不同的數(shù)據(jù)類型。

例:
list_define=[1,1.2,True,'str',[2,False]]
list_define=[] ##定義空列表
元組的定義
與列表類似,不同之處在于元組的元素不能修改。
元組使用小括號,列表使用方括號。
元組中只包含一個(gè)元素時(shí),需要在元素后面添加逗號

例:
tuple_define=(1,1.2,True,'str',[2,False])
tuple_define=() ##定義空元組,元組中只有一個(gè)元素時(shí)需加上逗號


列表和元組的特性

索引

list[0] ##list中的第一元素
list[-1] ##list中的最后一個(gè)元素
list[:] ##返回包含list中的所有元素的列表
list[1:] ##返回包含list中從第二個(gè)元素開始的所有元素的列表
list[:2] ##返回包含list中倒數(shù)第二個(gè)元素及之前的元素的列表
list[::-1] ##返回包含list中倒序元素排列的列表

切片

list[0] ##list中的第一元素
list[-1] ##list中的最后一個(gè)元素
list[:] ##返回包含list中的所有元素的列表
list[1:] ##返回包含list中從第二個(gè)元素開始的所有元素的列表
list[:2] ##返回包含list中倒數(shù)第二個(gè)元素及之前的元素的列表
list[::-1] ##返回包含list中倒序元素排列的列表

重復(fù)

list*2 ##返回兩遍list

連接

list1 + list2 ##拼接list1和list2,返回拼接后的列表

嵌套

list[4][0] ##第五個(gè)元素[2,False]中的第一個(gè)元素

成員操作

a in list                ##a存在于list中返回True,否則返回False
a not in list          ##a不存在于list中返回True,否則返回False

迭代

for i in list ##遍歷list中的元素


常用方法

列表的常用方法

list.attend('str') ##追加一個(gè)成員在列表list的末尾
list.extend(list2) ##追加一個(gè)list2在列表的末尾
list.insert(n,'str') ##將'str'插入列表list至索引為n的位置
list.pop(n) ##彈出(刪除并返回)list中索引為n的元素
list.remove('str') ##刪除list中的元素'str'
list.clear() ##清空list
del list[0] ##刪除list中第一個(gè)元素并釋放內(nèi)存
list.count('str') ##返回元素'str'出現(xiàn)的次數(shù)
list.index('str',n,m) ##返回索引值在n~m之間元素第一次出現(xiàn)'str'的索引值
list.sort(reverse=True) ##返回按照ASCII排序的列表
list.sort(key=str.lower) ##返回按照小寫字母排序的列表
list.reserse() ##逆序排列列表list,無返回值
list.copy() ##復(fù)制整個(gè)列表到新的內(nèi)存地址中去并返回list
min,*middle,max = list ##返回首個(gè),除去首尾的列表,和末尾的三個(gè)值

元組的常用方法

tuple.index(a) ##返回a在tuple中第一次出現(xiàn)的索引值
tuple.count(a) ##返回a在tuple中出現(xiàn)的次數(shù)
由于元組屬于不可變數(shù)據(jù)類型,因此不具有增刪改插的方法


常見應(yīng)用

  • 交換變量值
    a = 1
    b = 2
    a,b = b,a
  • 批量賦值
    a,b,c=(1,2,3)
  • 計(jì)分器
    scores =[100,90,80,70,60]
    scores = sorted(scores)
    min,*middle,max = scores

集合

   集合(set)是**一個(gè)無序的不重復(fù)元素序列**。

可以使用大括號 { } 或者 set() 函數(shù)創(chuàng)建集合
注意:創(chuàng)建一個(gè)空集合必須用 set() 而不是 { },因?yàn)?{ } 是用來創(chuàng)建一個(gè)空字典。


定義

set = {1,2,3}
set = {[]}

成員操作符

s in set ##s存在于set返回True,否則返回False
s not in set ##s不存在于set返回True,否則返回False

迭代

for i in set: ##利用i遍歷set里的成員
for i,v in enumerate(set) ##i遍歷(索引),v遍歷成員


方法

  set.add(s)          ##添加s到set集合中返回添加后的集合

set.pop(s) ##刪除set集合中的s返回刪除的元素(默認(rèn)第一個(gè))
set.remove(s) ##刪除set集合中的s,無返回值,set中不存在s會報(bào)錯(cuò)
set.discard(s) ##刪除set集合中的s,無返回值

并集

set1.union(set2) ##返回set1和set2的交集
set1|set2 ##同上

交集

set1&set2 ##返回set1和set2的交集
set1.isdisjoint(set2) ##set1和set2相交返回True,否則返回False

差集

set1-set2 ##返回set1和set2的差集
set1.difference(set2) ##同上

對等差分

set1^set2 ##返回set1和set2的對等差分
set1.symmetric_difference(set2) ##同上

子集和超集

set1.issubset(set2) ##set1是set2的子集返回True,否則返回False
set1.issuperset(set2) ##set1是set2的超集返回True,否則返回False



字典

key-value 鍵值對應(yīng)存儲的一種數(shù)據(jù)結(jié)構(gòu)

  • 序列是以連續(xù)的整數(shù)為索引,字典以關(guān)鍵字為索引
  • 關(guān)鍵字可以是任意不可變類型,通常用字符串或數(shù)值
  • 理解字典的最佳方式是把它看做無序的鍵=>值對集合。在同一個(gè)字典之內(nèi),關(guān)鍵字必須是互不相同。
    字典的每個(gè)鍵值(key=>value)對用冒號(:)分割,每個(gè)對之間用逗號(,)分割,整個(gè)字典包括在花括號({})中

定義

一對大括號創(chuàng)建一個(gè)空的字典:{}
dict = 
{
'key1':value1,
'key2':value2,
'key3':value3
}
{}.fromkeys({key1,key2},'str')  ##{}.fromkeys()第一個(gè)參數(shù)可以是list/tuple/str/set,所有key的value值一致
d = dict(key1=value1,key2=value2)  ##工廠函數(shù)定義

嵌套

d =
{
'key':
{
'key01':value1,
'key02':value2,
'key03':value3
}
}

字典特性

  • 字典不支持索引/切片/重復(fù)/連接
  • 成員操作符判斷的是字典中的key
  • for循環(huán)默認(rèn)遍歷字典的key值
  • 可通過傳遞key值遍歷字典的value值

增加元素

d['key']=value    ##key存在則更新,否則增加新的key-value對
dict2 ={
'key1':value1,
'key2':value2
}
d.update(dict2)  ##將dict2的key-value對加入d中
d.update(key1=value1,key2=value2)  ##增加多個(gè)key-value對,這里key只支持str類型
d.setdefault(key,value) ##如果key存在則不改變,否則增加新的key-value對

刪除元素

del d['key']  ##刪除對應(yīng)key的key-value值
d.pop('key')  ##刪除對應(yīng)key的key-value值,返回對應(yīng)的value值
d.popitem()   ##默認(rèn)刪除最后一個(gè)key-value值,返回對應(yīng)的value值
d.clear()     ##清空字典

查看和修改

d.keys()     ##顯示d中的keys
d.values()   ##顯示d中的values
d.get('key',0) ##存在key返回對應(yīng)value,不存在返回0

迭代

for i,v in d.items():
print(i,'---->',v)
for i in d:
print(i,'---->',d[i])
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI