Python 的四種數(shù)據(jù)結(jié)構(gòu)

本篇文章將會(huì)講解Python數(shù)據(jù)結(jié)構(gòu)中的list、tuple、set、dict。

list

list是一種有序集合

操作數(shù)據(jù)

直接添加數(shù)據(jù)

mylist = ['Google', 'Microsoft', 'Apple']

追加元素

mylist.append('Facebook')  # ['Google', 'Microsoft', 'Apple', 'Facebook']

指定位置插入元素

mylist.insert(1, 'Orcle')  # ['Google', 'Orcle', 'Microsoft', 'Apple', 'Facebook']

刪除元素

# 刪除尾部元素
mylist.pop()  # 會(huì)返回被刪除元素
# 刪除指定位置的元素
mylist.pop(1)  # 刪除索引為1的元素,并返回刪除的元素

替換元素

mylist[0] = 'Facebook'
mylist[1] = ['python', 'java', 'php']  # 集合的數(shù)據(jù)類型可以不同,也可以是集合

排序

mylist = [1, 2, 5, 4]
mylist.sort()          # [1, 2 ,4, 5]

如果是字母,則根據(jù)Ascii碼來排序

獲取長(zhǎng)度

同獲取字符串長(zhǎng)度一樣,都是使用len()函數(shù)即可。

len(mylist)

獲取數(shù)據(jù)

mylist[0]  # 'Google
mylist[-1]  # 'Apple'

如果索引超出范圍是,會(huì)拋出異常:IndexError: list index out of range

Tuple

Tuple,元組,用法與List類似,但Tuple一經(jīng)初始化,就不能修改,沒有List中的append(), insert(), pop()等修改的方法

注意點(diǎn)

1. 一個(gè)元素問題

Tuput在定義只有一個(gè)元素的元組時(shí)候,需要在后面加上,來消除歧義

t = (1,)  # 如果需要是Tuple,就必須加上逗號(hào),否則變成成了數(shù)字1了
# 這里如果沒有“,”就變成了“(1)”

2. 引用類型問題

看一個(gè)例子:

t = (1, [2, 3])
t[1][0] = '2'

輸入后并沒有報(bào)錯(cuò),值也的確修改了,這是因?yàn)門uple中知識(shí)保存了對(duì)象的引用,所以這么修改也是合理的,如果不了解引用就去百度看看。

dict

全稱dictionary,在Java語(yǔ)言中是Map,使用“鍵-值”對(duì)的形式存儲(chǔ)。查找速度快??磦€(gè)例子:

d = {'Beijing': '010', 'Guangzhou': '020'}
d['Shanghai'] = '021'  # 如果不存在就添加,存在就是修改
d['Guangzhou']         # 返回對(duì)應(yīng)鍵的值,如果不存在就報(bào)錯(cuò)

# 如果需要判斷是否存在某個(gè)key,可以使用如下方法:
'Shenzhen' in d        # False
'Guangzhou' in d       # True

獲取也可以使用get()方法:

d.get('Beijing')       # '010'
d.get('Shenzhen')      # None

# 第二個(gè)參數(shù)可以設(shè)置個(gè)默認(rèn)值,如果不存在就會(huì)返回該默認(rèn)值,而不是None
d.get('Shenzhen', '')  # ''

set

set的特點(diǎn)是無序、不重復(fù)。set就是dict中的key,不存儲(chǔ)value,

用法

s = set([1, 2, 3])          # {1, 2, 3}
s = set([3, 2, 1])          # {1, 2, 3}
s = set([1, 2, 3, 2, 2, 2]) # {1, 2, 3}

通過返回值可以看出set就是dict中的key

操作

1. 基本操作

s.add(4)          # {1, 2, 3, 4}
s.remove(4)       # {1, 2, 3}

2. 交集與并集

s1 = set([1, 2, 3])
s2 = set([1, 2, 4])
s1 & s2                # {1, 2}
s1 | s2                # {1, 2, 3, 4}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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