python 列表,元祖,字典,集合


1.1python列表的概述

列表的定義:列表是一個有序的,可修改的,元素以逗號分隔,以中括號包圍的序列。

1.2 python 列表的定義

1 lis = [] 2 print(type(lis),lis) 3 輸出:<class 'list'> []

列表中的每個元素的類型都可以互不相同,並且可以嵌套使用,列表中所放置的變量是不受類型約束的,可以是任意類型

lis = [1,2,3,'srt',['a','b'],'123'] print(type(lis),lis) 輸出:<class 'list'> [1, 2, 3, 'srt', ['a', 'b'], '123']

1.3列表的操作

列表的添加

append 追加,在列表的末尾插入元素

L = [1,2,3] L.append(4) print(L) 輸出:[1, 2, 3, 4]

insert 將指定元素插入到對應的索引位上,注意負索引

L = [1,2,3] L.insert(0,'1') print(L) 輸出:['1', 1, 2, 3]

extend 將指定序列的元素依次追加到列表的尾部(合並)

L = [1,2,3] L.extend('abc') print(L) 輸出:[1, 2, 3, 'a', 'b', 'c']

列表的刪除

pop 彈出,返回並刪除指定索引位上的數據,默認刪除索引為-1的數據

L = [1,2,3] L.pop(0) print(L) 輸出:[2, 3]

remove 從左往右刪除一個指定的元素

L = [1,2,3,'a'] L.remove('a') print(L) 輸出:[1, 2, 3]

del 刪除整個列表或列表的數據,del是python內置功能不是list獨有的

L = [1,2,3,'a'] del L print(L) 輸出:NameError: name 'L' is not defined

列表的查找
count 計數,返回要計數元素在列表中出現的個數

L = [1,2,3,'a'] print(L.count(1)) 輸出:1

index 查找,從左往右返回查找到的第一個指定元素的索引,如果沒有找到,報錯。

L = [1,2,3,'a'] print(L.index('a')) 輸出:3

in 查找元素是否在列表中,在輸出true,否則false

L = [1,2,3,'a'] print(1 in L) 輸出:True

列表的排序
reverse 順序倒序

L = [1,2,3,'a'] L.reverse() print(L) 輸出:['a', 3, 2, 1]

sort 按照ascii碼表進行排序

L = [1,2,3] L.sort() print(L) 輸出:[1, 2, 3] 注意:列表內不同數據類型之間,不能相互比較。否則會出錯

 

2.1元祖的概述

元祖的定義:不可修改的,以逗號分隔,以小括號包圍的序列,可以通過(),tuple()函數定義。
不能修改,只有在定義的一瞬間可以修改。
元祖是我們列表的只讀版本

元祖的優點:
由於元祖不可變,所以遍歷元祖比列表要快(較小的性能提升)
由於元祖不可變,所以元祖的數據被‘寫保護’,一些軟件比較重要的數據都是用元祖存儲的

創建元祖

tuple = ('1','2',3) print(tuple,type(tuple)) 輸出:('1', '2', 3) <class 'tuple'>

 

關於tuple的定義還有一些特殊的規則
在定義包含0個元素的tuple時,直接使用小括號。
在定義包含1個元素的tuple時,需要在后面加一個括號。
為什么會出現這種情況呢?,Python中的()同樣也表示數學運算的一個基本符號,比如(1+1)*2
所以這就和元組的這個小括號產生了歧義,當元組中只有一個元素,而又沒有逗號的時候,它會把這
元素運算出來,這個小括號會被Python解釋器識別為一個運算符號,所以得到的是那個元素本身的數據類型

訪問元組
元組的‘序列’類型相關操作與List基本一樣,下標從0開始,支持索引、切片等讀取方式,但不支持修改。

tuple = ('1','2',3) print(tuple[0],tuple[1]) 輸出:1 2

 

修改元組
說明:Python中不允許修改元組的數據,包括不能刪除其中的元素。

tuple函數
tuple函數的功能與list函數基本上一樣的,以一個序列作為參數並把它轉換為元組,如果參數是元組,那么該參數就會被原樣返回。

L = [1,2,3] tuple = tuple(L) print(tuple) 輸出:(1, 2, 3)

 

元組是不可變的,也就是說,元組中的元素在被賦值后不能改變。但是,如果元素本身是一個可變數據類型的列表,那么其嵌套項可以被改變。

num = (1,2,['a','b']) num[2].append('c') print(num) 輸出:(1, 2, ['a', 'b', 'c'])

 

2.2python元祖的方法

元祖的查找:
index 從左往右返回第一個遇到的指定元素的索引,如果沒有報錯!

num = (1,2,['a','b']) print(num.index(['a','b'])) 輸出:2

 

count 返回元祖當中指定元素的個數

num = (1,1,3,4,2,1) print(num.count(1)) 輸出:3

 

2.3 Python元組與列表的區別

1,元祖和列表都是有序的,元祖不可修改,列表可以修改

3.3python字典

3.1 python字典的概述
字典是一個無序的,可以修改的,元素呈鍵值對的形式(這種結構類型通常也被稱為映射,或者叫關聯數組,也有叫哈希表的),以逗號分割的,以大括號包圍的數據類型;

3.2 字典和列表一樣,也能夠存儲多個數據,字典中的值並沒有特殊順序。
列表中找某個元素時,是根據下標進行的,如果下標很多,查找數據不方便。當索引不好用時,使用字典,是你最好的選擇。
字典的每個元素由2部分組成,鍵:值。例如 'name':'班長' ,'name'為鍵,'班長'為值,字典由鍵值組成。
由於字典無序,所以我們定義字典和字典生成之后的元素的順序是不同的;
格式:

info = {'name':'alex','addr':'beijing','age':'18'} #利用鍵名獲取
s = info['name'] print(s) 輸出:alex #注意如果未找到這個鍵,報錯 #get方法
s = info.get('addr') print(s) 輸出:beijing #get方法如果沒有找到相應的值,就會輸出None,后面也可以帶默認的值,工作中常用。
 添加 info['hobby'] = 'girl'
print(info) 輸出:{'name': 'alex', 'addr': 'beijing', 'age': '18', 'hobby': 'girl'} 修改 info['hobby'] = 'boy'
print(info) 輸出:{'name': 'alex', 'addr': 'beijing', 'age': '18', 'hobby': 'boy'} #如果元素中沒有hobby這個鍵,就是添加
 刪除 del info['name'] print(info) 輸出:{'addr': 'beijing', 'age': '18', 'hobby': 'girl'}

 

3.3Python字典的特點

1.因為字典是無序的,所以字典沒有索引值;
2.因為字典沒有索引值,所以字典以鍵取值,(字典的鍵相當於列表的索引);
3.因為字典以鍵取值,所以字典的鍵唯一且不可修改;
4.因為字典的鍵不可修改,所以列表和字典等可變類型的數據不可以給字典做鍵。


3.4Python字典的常見操作

keys 返回一個包含字典所有key的列表
values 返回一個包含字典所有value的列表
get 以鍵取值,如果指定鍵不存在,默認返回None,可以指定返回內容
setdefault 設置默認,如果鍵存在,返回值,如果鍵不存在,創造鍵,值默認為None,
值也可以自定義setdefault(key,default=None)
update 以字典格式更新指定鍵的內容,如果鍵不存在,創建鍵和值
items 返回字典鍵值呈元組形式的格式

#keys
info = {'name': 'alex', 'age': 18, 'addr': 'beijing'} s = info.keys() print(s,type(s)) 輸出:dict_keys(['name', 'age', 'addr']) <class 'dict_keys'>

#values
s = info.values() print(s,type(s)) 輸出:dict_values(['alex', 18, 'beijing']) <class 'dict_values'>

#setdefault
s = info.setdefault('hobby','girl') print(info) #以字典格式更新指定鍵的內容,如果鍵不存在,創建鍵和值
輸出:{'name': 'alex', 'age': 18, 'addr': 'beijing', 'hooby': 'girl'} #update
info.update({'cosplay':'勇士'}) print(info) 輸出:{'name': 'alex', 'age': 18, 'addr': 'beijing', 'cosplay': '勇士'} #items
s = info.items() print(s) 輸出:dict_items([('name', 'alex'), ('age', 18), ('addr', 'beijing')])

 

字典的刪除 pop 彈出,返回並刪除指定鍵對應的值
popitem 隨機彈出一個鍵值元組,這里隨機的原因是因為字典無序
clear 清空字典

字典的判斷 in 判斷指定的鍵是否在字典當中

字典的遍歷 for ...in .. 通過for ... in ...:的語法結構,我們可以遍歷字符串、列表、元組、字典等數據結構。

#定義一個字典
info = {'name':'龜叔','age':50,'addr':'荷蘭'} #pop方法
print(info.pop('name'),info) 輸出:alex {'age': 18, 'addr': 'beijing'} #popitem
print(info.popitem(),info) 輸出:('addr', 'beijing') {'name': 'alex', 'age': 18} #clear
info.clear() print(info) 輸出:{} #for...in...
for i in info: print(i) 輸出: name age addr

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM