欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python列表元組字典集合存儲(chǔ)結(jié)構(gòu)詳解

 更新時(shí)間:2025年02月19日 14:49:09   作者:趙廣陸  
本文詳細(xì)介紹了Python中列表、元組、字典和集合等數(shù)據(jù)結(jié)構(gòu)的定義、操作和用法,包括數(shù)據(jù)類型的相互嵌套、常用操作方法、循環(huán)遍歷等

1 列表

python最重要的就是操作數(shù)據(jù)結(jié)構(gòu),所以要知道數(shù)據(jù)使用才行,一般常用的就是數(shù)據(jù)類型的相互嵌套,要清晰把我是什么數(shù)據(jù)結(jié)構(gòu)。

列表就是['數(shù)據(jù)1', '數(shù)據(jù)2', '數(shù)據(jù)3', '數(shù)據(jù)4'.....],元組就是不可變的列表t1 = (10, 20, 30),但要注意t3 = (20)這個(gè)還是int類型,t3 = (20,)這樣才是元組,字典就是dict1 = {'name': 'wushen', 'age': 19, 'gender': '男'},集合就是set,s2 = {10, 30, 20, 10, 30, 40, 30, 50}會(huì)對(duì)元素去重

1.1 列表語(yǔ)法

['數(shù)據(jù)1', '數(shù)據(jù)2', '數(shù)據(jù)3', '數(shù)據(jù)4'.....]

1.2 列表的常用操作

列表的作?是?次性存儲(chǔ)多個(gè)數(shù)據(jù),程序員可以對(duì)這些數(shù)據(jù)進(jìn)?的操作有:增、刪、改、查

1.2.1 查找

  1. 下標(biāo)查找
name_list = ['oldlu', 'xiaofang', 'xiaolu']
print(name_list[0]) 
print(name_list[1])
print(name_list[2])

具體示例如下:

  1. 函數(shù)方法

index():返回指定數(shù)據(jù)所在位置的下標(biāo) 。

語(yǔ)法

列表序列.index(數(shù)據(jù), 開始位置下標(biāo), 結(jié)束位置下標(biāo))

快速體驗(yàn)

name_list =['oldlu', 'xiaofang', 'xiaolu']
print(name_list.index('oldlu', 0, 2))

具體示例如下:

注意:如果查找的數(shù)據(jù)不存在則報(bào)錯(cuò)。

count():統(tǒng)計(jì)指定數(shù)據(jù)在當(dāng)前列表中出現(xiàn)的次數(shù)。

name_list = ['oldlu', 'xiaofang', 'xiaolu']
print(name_list.count('xiaofang'))

具體示例如下:

len():訪問(wèn)列表?度,即列表中數(shù)據(jù)的個(gè)數(shù)。

name_list = ['oldlu', 'xiaofang', 'xiaolu']
print(len(name_list)) #3
  1. 判斷是否存在

in:判斷指定數(shù)據(jù)在某個(gè)列表序列,如果在返回True,否則返回False

name_list = ['wushen', 'xiaoyuan', 'cheng']
# 結(jié)果:True
print('wushen' in name_list)
# 結(jié)果:False
print('wushens' in name_list)

具體示例如下:

not in:判斷指定數(shù)據(jù)不在某個(gè)列表序列,如果不在返回True,否則返回False

name_list = ['wushen', 'xioayuan', 'cheng']
# 結(jié)果:False
print('wushen' not in name_list)
# 結(jié)果:True
print('wushens' not in name_list)

具體示例如下:

1.2.2 增加

作?:增加指定數(shù)據(jù)到列表中。

1.語(yǔ)法

append():列表結(jié)尾追加數(shù)據(jù)。

列表序列.append(數(shù)據(jù))

2. 體驗(yàn)

name_list = ['wushen', 'xiaoyuan', 'cheng']
name_list.append('xingdie')
# 結(jié)果:['wushen', 'xiaoyuan', 'cheng', 'xingdie']
print(name_list)

列表追加數(shù)據(jù)的時(shí)候,直接在原列表??追加了指定數(shù)據(jù),即修改了原列表,故列表為可變類型 數(shù)據(jù)。

3. 注意點(diǎn)

如果append()追加的數(shù)據(jù)是?個(gè)序列,則追加整個(gè)序列到列表

name_list = ['wushen', 'xiaoyuan', 'cheng']
name_list.append(['xingdie', 'xingdie'])
# 結(jié)果:['wushen', 'xiaoyuan', 'cheng', ['xingdie', 'xingdie']]
print(name_list)

extend():列表結(jié)尾追加數(shù)據(jù),如果數(shù)據(jù)是?個(gè)序列,則將這個(gè)序列的數(shù)據(jù)逐?添加到列表。

1. 語(yǔ)法

列表序列.extend(數(shù)據(jù))

2. 快速體驗(yàn)

單個(gè)數(shù)據(jù)

name_list = ['wushen', 'xiaoyuan', 'xingdie']
name_list.extend('liujia')
# 結(jié)果:['wushen', 'xiaoyuan', 'xingdie', 'l', 'i', 'u', 'j', 'i', 'a']
print(name_list)

具體示例如下:

序列數(shù)據(jù)

name_list = ['wushen', 'xiaoyuan', 'xingdie']
name_list.extend(['liujia', 'zhihong'])
# 結(jié)果:['wushen', 'xiaoyuan', 'xingdie', 'liujia', 'zhihong']
print(name_list)

具體示例如下:

insert():指定位置新增數(shù)據(jù)。

1. 語(yǔ)法

列表序列.insert(位置下標(biāo), 數(shù)據(jù))

2. 快速體驗(yàn)

name_list = ['wushen', 'xiaoyuan', 'xingdie']
name_list.insert(1, 'liujia')
# 結(jié)果:['wushen', 'liujia', 'xiaoyuan', 'xingdie']
print(name_list)

具體示例如下:

1.2.3 刪除

• del

1. 語(yǔ)法

del ?標(biāo)

2. 快速體驗(yàn)

刪除列表

name_list = ['wushen', 'xiaoyuan', 'xingdie']
# 結(jié)果:報(bào)錯(cuò)提示:name 'name_list' is not defined
del name_list
print(name_list)

具體示例如下:

刪除指定數(shù)據(jù)

name_list = ['wushen', 'xiaoyuan', 'xingdie']
del name_list[0]
# 結(jié)果:['xiaoyuan', 'xingdie']
print(name_list)

具體示例如下:

pop():刪除指定下標(biāo)的數(shù)據(jù)(默認(rèn)為最后?個(gè)),并返回該數(shù)據(jù)。

1. 語(yǔ)法

列表序列.pop(下標(biāo))

2. 快速體驗(yàn)

name_list = ['wushen', 'xiaoyuan', 'xingdie']
del_name = name_list.pop(1)
# 結(jié)果:xiaoyuan
print(del_name)
# 結(jié)果:['wushen', 'xingdie']
print(name_list)

具體示例如下:

remove():移除列表中某個(gè)數(shù)據(jù)的第?個(gè)匹配項(xiàng)。

1. 語(yǔ)法

1 列表序列.remove(數(shù)據(jù))

2. 快速體驗(yàn)

name_list = ['wushen', 'xiaoyuan', 'xingdie']
name_list.remove('xingdie')
# 結(jié)果:['wushe', 'xiaoyuan']
print(name_list)

clear():清空列表

name_list = ['wushen', 'xiaoyuan', 'xingdie']
name_list.clear()
print(name_list) # 結(jié)果: []

具體示例如下:

1.2.4 修改

修改指定下標(biāo)數(shù)據(jù)

name_list = ['wushen', 'xiaoyuan', 'xingdie']
name_list[0] = 'ccc'
# 結(jié)果:['ccc', 'xiaoyaun', 'xingdie']
print(name_list)

逆置:reverse()

num_list = [1, 5, 2, 3, 6, 8]
num_list.reverse()
# 結(jié)果:[8, 6, 3, 2, 5, 1]
print(num_list)

具體示例如下:

排序:sort()

1. 語(yǔ)法

列表序列.sort( key=None, reverse=False)

注意:reverse表示排序規(guī)則,reverse = True 降序, reverse = False 升序(默認(rèn))

2. 快速體驗(yàn)

num_list = [1, 5, 2, 3, 6, 8]
num_list.sort()
# 結(jié)果:[1, 2, 3, 5, 6, 8]
print(num_list)

1.2.6 復(fù)制

函數(shù):copy()

name_list = ['wushen', 'xiaoyuan', 'xingdie']
name_li2 = name_list.copy()
# 結(jié)果:['wushen', 'xiaoyuan', 'xingdie']
print(name_li2)

具體示例如下:

1.3 列表的循環(huán)遍歷

1.3.1 while

•代碼

name_list = ['wushen', 'xiaoyuan', 'xingdie']
i = 0
while i < len(name_list):
    print(name_list[i])
    i += 1

具體示例如下:

1.3.2 for

代碼

name_list = ['wushen', 'xiaoyuan', 'xingdie']
for i in name_list:
    print(i)

具體示例如下:

1.4 列表嵌套

所謂列表嵌套指的就是?個(gè)列表??包含了其他的?列表。

name_list = [['吳神', '?園', '星蝶'], ['wushen', 'xiaoyuan', 'xingxie'], ['張三', '李四',
'王五']]

思考: 如何查找到數(shù)據(jù)"李四"?

# 第?步:按下標(biāo)查找到李四所在的列表
print(name_list[2])
# 第?步:從李四所在的列表??,再按下標(biāo)找到數(shù)據(jù)李四
print(name_list[2][1])

具體示例如下:

2 元組

2.1 定義元組

思考:如果想要存儲(chǔ)多個(gè)數(shù)據(jù),但是這些數(shù)據(jù)是不能修改的數(shù)據(jù),怎么做?

答:列表?列表可以?次性存儲(chǔ)多個(gè)數(shù)據(jù),但是列表中的數(shù)據(jù)允許更改。

?個(gè)元組可以存儲(chǔ)多個(gè)數(shù)據(jù),元組內(nèi)的數(shù)據(jù)是不能修改的。

元組特點(diǎn):定義元組使??括號(hào),且逗號(hào)隔開各個(gè)數(shù)據(jù),數(shù)據(jù)可以是不同的數(shù)據(jù)類型

# 多個(gè)數(shù)據(jù)元組
t1 = (10, 20, 30)
# 單個(gè)數(shù)據(jù)元組
t2 = (10,)

注意:如果定義的元組只有?個(gè)數(shù)據(jù),那么這個(gè)數(shù)據(jù)后?也好添加逗號(hào),否則數(shù)據(jù)類型為唯?的 這個(gè)數(shù)據(jù)的數(shù)據(jù)類型

t2 = (10,)
print(type(t2)) # tuple
t3 = (20)
print(type(t3)) # int
t4 = ('hello')
print(type(t4)) # str

具體示例如下:

2.2 元組的常見操作

元組數(shù)據(jù)不?持修改,只?持查找,具體如下:

  • 按下標(biāo)查找數(shù)據(jù)
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1[0]) # aa
  • index():查找某個(gè)數(shù)據(jù),如果數(shù)據(jù)存在返回對(duì)應(yīng)的下標(biāo),否則報(bào)錯(cuò),語(yǔ)法和列表、字符串的index ?法相同。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.index('aa')) # 0
  • count():統(tǒng)計(jì)某個(gè)數(shù)據(jù)在當(dāng)前元組出現(xiàn)的次數(shù)。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.count('bb')) # 2
  • len():統(tǒng)計(jì)元組中數(shù)據(jù)的個(gè)數(shù)。
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(len(tuple1)) # 4

注意:元組內(nèi)的直接數(shù)據(jù)如果修改則?即報(bào)錯(cuò)

tuple1 = ('aa', 'bb', 'cc', 'bb')
tuple1[0] = 'aaa'

但是如果元組??有列表,修改列表??的數(shù)據(jù)則是?持的,故覺很重要。

tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)
print(tuple2[2]) # 訪問(wèn)到列表
# 結(jié)果:(10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)
tuple2[2][0] = 'aaaaa'
print(tuple2)

3 字典

3.1 創(chuàng)建字典的語(yǔ)法

字典特點(diǎn):

  • 符號(hào)為?括號(hào)
  • 數(shù)據(jù)為鍵值對(duì)形式出現(xiàn)
  • 各個(gè)鍵值對(duì)之間?逗號(hào)隔開
# 有數(shù)據(jù)字典
dict1 = {'name': 'wushen', 'age': 19, 'gender': '男'}
# 空字典
dict2 = {}
dict3 = dict()

注意:?般稱冒號(hào)前?的為鍵(key),簡(jiǎn)稱k;冒號(hào)后?的為值(value),簡(jiǎn)稱v。

3.2 字典常見操作

3.2.1 增加

寫法:字典序列[key] = 值

注意:如果key存在則修改這個(gè)key對(duì)應(yīng)的值;如果key不存在則新增此鍵值對(duì)。

dict1 = {'name': 'wushen', 'age': 19, 'gender': '男'}
dict1['name'] = 'wushen'
# 結(jié)果:{'name': 'wushen', 'age': 19, 'gender': '男'}
print(dict1)
dict1['id'] = 110
dict1['name'] = 110

具體示例如下:

注意:字典為可變類型。

3.2.2 刪除

del() / del:刪除字典或刪除字典中指定鍵值對(duì)

dict1 = {'name': 'wushen', 'age': 19, 'gender': '男'}
del dict1['gender']
# 結(jié)果:{'name': 'wushen', 'age': 19}
print(dict1)

具體示例如下:

clear():清空字典

dict1 = {'name': 'wushne', 'age': 19, 'gender': '男'}
dict1.clear()
print(dict1) # {}

具體示例如下:

3.2.3 修改

寫法:字典序列[key] = 值

注意:如果key存在則修改這個(gè)key對(duì)應(yīng)的值 ;如果key不存在則新增此鍵值對(duì)。

3.2.4 查詢

key值查找

dict1 ={'name': 'wushen', 'age': 19, 'gender': '男'}
print(dict1['name']) 
print(dict1['id']) # 報(bào)錯(cuò)

具體示例如下:

如果當(dāng)前查找的key存在,則返回對(duì)應(yīng)的值;否則則報(bào)錯(cuò)。

get()

  • 語(yǔ)法
字典序列.get(key, 默認(rèn)值)

注意:如果當(dāng)前查找的key不存在則返回第?個(gè)參數(shù)(默認(rèn)值),如果省略第?個(gè)參數(shù),則返回 None。

  • 快速體驗(yàn)
dict1 = {'name': 'wushen', 'age': 19, 'gender': '男'}
print(dict1.get('name')) # wushen
print(dict1.get('id', 110)) # 110
print(dict1.get('id')) # None
print(dict1.get('name',110)) # wushen

具體示例如下:

keys()獲得所有的鍵

dict1 = {'name': 'wushen', 'age': 19, 'gender': '男'}
print(dict1.keys()) # dict_keys(['name', 'age', 'gender'])

具體示例如下:

values()獲得所有的值

dict1 = {'name': 'wushen', 'age': 19, 'gender': '男'}
print(dict1.values()) # dict_values(['wushen', 19, '男'])

items()獲得所有的鍵值對(duì)

dict1 = {'name': 'wushen', 'age': 19, 'gender': '男'}
print(dict1.items()) # dict_items([('name', 'wushen'), ('age', 19), ('gender','男')])

3.3 字典的循環(huán)遍歷

3.3.1 遍歷字典的key

dict1 = {'name': 'wushen', 'age': 19, 'gender': '男'}
for key in dict1.keys():
 print(key)

3.3.2 遍歷字典的value

dict1 = {'name': 'wushen', 'age': 19, 'gender': '男'}
for value in dict1.values():
 print(value)

3.3.3 遍歷字典的元素

dict1={'name':'wushen','age':19,'gender':'男'}
for item in dict1.items():
 print(item)

具體示例如下:

3.3.4 遍歷字典的鍵值對(duì)

dict1 = {'name': 'wushen', 'age': 19, 'gender': '男'}
for key, value in dict1.items():
 print(f'{key} = {value}')

4 集合

4.1 創(chuàng)建集合

創(chuàng)建集合使用 {} 或 set() , 但是如果要?jiǎng)?chuàng)建空集合只能使用 set() ,因?yàn)?{} 用來(lái)創(chuàng)建空字典。

特點(diǎn): 1. 集合可以去掉重復(fù)數(shù)據(jù);2. 集合數(shù)據(jù)是?序的,故不?持下標(biāo)。

s1 = {10, 20, 30, 40, 50}
print(s1)
s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2)
s3 = set('abcdefg')
print(s3)
s4 = set()
print(type(s4)) # set
s5 = {}
print(type(s5)) # dict

具體示例如下:

4.2 集合常見操作方法

4.2.1 增加數(shù)據(jù)

  • add()
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1) # {100, 10, 20}

因?yàn)榧嫌腥ブ毓δ?,所以,?dāng)向集合內(nèi)追加的數(shù)據(jù)是當(dāng)前集合已有數(shù)據(jù)的話,則不進(jìn)?任何操作。

  • update(),追加的數(shù)據(jù)是序列。
s1 = {10, 20}
# s1.update(100) # 報(bào)錯(cuò)
s1.update([100, 200])
s1.update('abc')
print(s1)

4.2.2 刪除數(shù)據(jù)

  • remove()刪除集合中的指定數(shù)據(jù),如果數(shù)據(jù)不存在則報(bào)錯(cuò)。
s1 = {10, 20}
s1.remove(10)
print(s1)
s1.remove(10) # 報(bào)錯(cuò)
print(s1)
  • discard()刪除集合中的指定數(shù)據(jù),如果數(shù)據(jù)不存在也不會(huì)報(bào)錯(cuò)。
s1 = {10, 20}
s1.discard(10)
print(s1)
s1.discard(10) # 報(bào)錯(cuò)
print(s1)
  • pop()隨機(jī)刪除集合中的某個(gè)數(shù)據(jù),并返回這個(gè)數(shù)據(jù)。
s1 = {10, 20, 30, 40, 50}
del_num = s1.pop()
print(del_num)
print(s1)

4.2.3 查找數(shù)據(jù)

  • in:判斷數(shù)據(jù)在集合序列
  • not in:判斷數(shù)據(jù)不在集合序列
s1 = {10, 20, 30, 40, 50}
print(10 in s1)
print(10 not in s1)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中將字符串轉(zhuǎn)換為列表的常用八種方法

    Python中將字符串轉(zhuǎn)換為列表的常用八種方法

    本文介紹了Python中將字符串轉(zhuǎn)換為列表的八種常用方法,包括split()方法、列表解析、正則表達(dá)式、str()函數(shù)、map()函數(shù)、re.split()、re.finditer()和逐字符遍歷,感興趣的可以了解一下
    2024-07-07
  • pandas實(shí)現(xiàn)滑動(dòng)窗口的示例代碼

    pandas實(shí)現(xiàn)滑動(dòng)窗口的示例代碼

    本文主要介紹了pandas實(shí)現(xiàn)滑動(dòng)窗口的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 詳解Python下ftp上傳文件linux服務(wù)器

    詳解Python下ftp上傳文件linux服務(wù)器

    本篇文章給大家總結(jié)了Python下ftp上傳文件linux服務(wù)器的詳細(xì)功能代碼,有需要的朋友參考學(xué)習(xí)下。
    2018-06-06
  • 基于python實(shí)現(xiàn)數(shù)組格式參數(shù)加密計(jì)算

    基于python實(shí)現(xiàn)數(shù)組格式參數(shù)加密計(jì)算

    這篇文章主要介紹了基于python實(shí)現(xiàn)數(shù)組格式參數(shù)加密計(jì)算,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 根據(jù)DataFrame某一列的值來(lái)選擇具體的某一行方法

    根據(jù)DataFrame某一列的值來(lái)選擇具體的某一行方法

    今天小編就為大家分享一篇根據(jù)DataFrame某一列的值來(lái)選擇具體的某一行方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python多進(jìn)程重復(fù)加載的解決方式

    python多進(jìn)程重復(fù)加載的解決方式

    今天小編就為大家分享一篇python多進(jìn)程重復(fù)加載的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python使用urllib模塊和pyquery實(shí)現(xiàn)阿里巴巴排名查詢

    python使用urllib模塊和pyquery實(shí)現(xiàn)阿里巴巴排名查詢

    這篇文章主要介紹了python庫(kù)urllib及pyquery基本東西的應(yīng)用,實(shí)現(xiàn)阿里巴巴關(guān)鍵詞排名的查詢,其中涉及到urllib代理的設(shè)置,pyquery對(duì)html文檔的解析
    2014-01-01
  • Datawhale練習(xí)之二手車價(jià)格預(yù)測(cè)

    Datawhale練習(xí)之二手車價(jià)格預(yù)測(cè)

    此篇文章是關(guān)于Datawhale練習(xí),代碼完整,但由于該數(shù)據(jù)集中數(shù)據(jù)特征較少(39維),以下可作為少量特征情況下的分析。當(dāng)特征數(shù)目過(guò)大(成千上萬(wàn))時(shí),需要繼續(xù)學(xué)習(xí)。需要的朋友可以參考下
    2021-04-04
  • 使用Python給Excel工作表設(shè)置背景色或背景圖

    使用Python給Excel工作表設(shè)置背景色或背景圖

    Excel是工作中數(shù)據(jù)處理和分析數(shù)據(jù)的重要工具,面對(duì)海量的數(shù)據(jù)和復(fù)雜的表格,如何提高工作效率、減少視覺疲勞并提升數(shù)據(jù)的可讀性是不容忽視的問(wèn)題,而給工作表設(shè)置合適的背景是表格優(yōu)化的一個(gè)有效方式,本文將介紹如何用Python給Excel工作表設(shè)置背景色或背景圖
    2024-07-07
  • python實(shí)現(xiàn)生成Word、docx文件的方法分析

    python實(shí)現(xiàn)生成Word、docx文件的方法分析

    這篇文章主要介紹了python實(shí)現(xiàn)生成Word、docx文件的方法,結(jié)合實(shí)例形式分析了Python使用docx模塊操作word文件與docx文件的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-08-08

最新評(píng)論