2.4.5 set集合型別(作用:交叉並補;特點:無序,自動去重,不可修改,不可獲取)
# 定義集合
setvar =
# 自動去重
setvar =
print
(setvar)
# 定義空集合
setvar =
setvar =
set(
)print
(setvar,
type
(setvar)
)
2.4.6 dict字典型別(特點:以鍵值對儲存資料,表面上有序,實際上無序)
語法:divtvar =
"""
字典的鍵:推薦用變數命名的字串進行使用
字典的鍵和集合的值有資料型別上的要求
可雜湊的資料型別可以做字典的鍵:number(int,float,bool,complete),str,tuple
可變型別,不可雜湊(不可被應用在set中和字典的鍵):list dict set
雜湊演算法都是典型的無序特徵,目的:為了更加均勻的把資料分配到記憶體中,隨機,無序,底層用了取模類似的演算法。
python3.6版本,對字典做了優化,儲存資料的時候用的雜湊演算法
但是在拿出資料的時候,重新按照定義的順序做了排序,所以看起來有序,實際是無序的
"""# 定義空字典
dictvar =
dictvar =
dict
# 定義普通字典
dictvar =
dict
# 獲取字典值
dictvar[
'name'
]# 修改字典值
dictvar[
'name']=
"jack"
# 字典的鍵有一定要求
dictvar =
1. number(int,float,bool,complex)型別整型:-5 ~ 正無窮範圍內的值相同 id 值一致
var1 = 1
var2 = 2
浮點數:非負數範圍內的兩個值相同時 id 值一致
var1 = 1.0
var2 = 2.0
布林值:值相同的情況下,id一致
var1 = true
var2 = false
print(id(var1),id(var2))
複數對於 實數+虛數 這種結構中永不相同(只有虛數的情況例外)
intvar1 = 1+2j
intvar2 = 1+2j
intvar3 = 1j
intvar4 = 1j
print(id(intvar1),id(intvar2),id(intvar3),id(intvar4))
2. 容器型別字串和空元組相同的情況下,位址相同
var1 = "你"
var2 = "你"
var3 = ()
var4 = ()
print(id(var1),id(var2),id(var3),id(var4))
列表,元組,字典,集合無論什麼情況id值都不同(空元組例外)
listvar1 = [1,2,3]
listvar2 = [1,2,3]
setvar3 =
setvar4 =
dictvar5 =
dictvar6 =
print(id())
1. numbei(int,bool,float,complex)強制型別轉換型別轉換方法:int(),bool(),float(),complex()
強制轉換整型(純數字型別字串,浮點型,布林型,整型)
var1 = int(1.0)
var2 = int('12')
var3 = int(false)
var4 = int(12)
強制轉換浮點型(純數字型別字串,浮點型,布林型,整型)
var1 = float(1.1)
var2 = float('12')
var3 = float(false)
var4 = float(12)
強制轉換布林型(純數字型別字串,浮點型,布林型,整型)
var1 = bool(1.1)
var2 = bool('12')
var3 = bool(false)
var4 = bool(12)
強制轉化布林型為假的十種情況
0 0.0 false 0j () {} set() '' none
強制轉換成複數(純數字字串,浮點型,布林型,整形)
var1 = complex(1.1)
var2 = complex('12')
var3 = complex(false)
var4 = complex(12)
2. 自動型別轉換number(int float bool complex)
轉換原則:資料精度預設從低到高轉換:bool int float complex
bool + int 布林型別 + int整型 = 整型
ret = true + 12
bool + float 布林型別 + float浮點型 = 浮點型
ret = true + 1.2
bool + complex 布林型別 + complex複數 = 複數
ret = true + 1+2j
int + float int整型 + float浮點型 = 浮點型
ret = 1 + 1.1
int + complex int整型 + complex複數 = 複數
ret = 1 + 1+2j
float + complex float浮點型 + complex複數 = 複數
ret = 1.1 + 1+2j
3. 容器型別的強制轉換(str tuple list set dict)強制轉化成str字串(number型別資料和容器型別資料都可以轉化)
ret = str([1,2])
強制轉化成元組(自身轉化無變化)
ret = tuple("sfaf") 字串強制轉化成元組會拆分成單個字元 ("s","f","a","f")
ret = tuple([1,2,3]) 列表強制轉化成元組表面上看就是換了外面的括號
ret = tuple() 集合強制轉化成元組表面上看就是換了外面的括號
ret = tuple() 字典強制轉化成元組只會保留字典的鍵以元組的方式呈現
number資料型別不能強制轉化成元組
強制轉化成列表(自身轉化無變化)
ret = list("sfaf") 字串強制轉化成列表會拆分成單個字元 ("s","f","a","f")
ret = list((1,2,3)) 元組強制轉化成列表從表面上看就是換了外面的括號
ret = list() 集合強制轉化成列表從表面上看就是換了外面的括號
ret = list() 字典強制轉化成列表只會保留字典的鍵以元組的方式呈現
number資料型別不能強制轉化成列表
強制轉化成集合(自身轉化無變化)
ret = set("sfaf") 字串強制轉化成集合會被拆分成單個字元並自動去重 ("s","f","a")
ret = set([1,2,3]) 列表強制轉化成集合會自動去重,從表面上看外層括號會變成{}
ret = set((1,2,3)) 元組強制轉換成集合會自動去重,從表面上看外層括號會變成{}
ret = set() 字典強制轉化成列表只會保留字典的鍵以集合的方式呈現,並會自動去重
強制轉化成字典(自身轉化無變化)
注:強轉成字典時,必須是等長的二級容器,元素個數為2
外層可以是列表、元組或集合,裡面的容器是元組或者列表
ret = [(1,2,),[1,2]]
ret = ((1,2,),[1,2])
ret =
如果裡面出現集合(外層不是set集合{}),語法上是允許的,但有侷限性
ret = ([1,2],)
如果裡面出現字串,語法上是允許的,但有侷限性,字串的長度只能是2
ret = ([1,2],'as')
4. 二級容器二級列表
ret = [1,[2,3]]
二級元組
ret = (1,(2,3,),)
二級集合
ret = }
二級字典
ret = }
多級容器就是巢狀使用
python 資料型別 字典和集合
字典 乙個key值 對應乙個value值 定義mydict1 mydict2 dict 取值 mydict1 name a name 1 aa get key,0 取值 mydict1.get name a 賦值 mydict2 ee aaa in 是否在裡面 name in mydict1 tru...
資料型別之元組,字典,集合
tuple 元組就是乙個不可變的列表 基本使用 1 用途 當我們需要記錄多個同種屬性的值,並且只有讀的需求沒有改的需求時,應該用元組 2 定義方式 在 內用逗號分隔開多個任意型別的元素 當元組內只有乙個元素時,必須加逗號 t tuple egon 資料型別轉換 tuple 括號內可以使字串 列表 字...
容器型別的強制轉換和字典強轉
var1 我愛你,就像老鼠愛大公尺 var2 1,2,3 var3 好 嗎 我 他 var4 var5 特點 在原資料的兩邊套上引號,表達字串的型別 可以強轉一切資料 res str var2 res str var3 res str var4 print res type res 原型化輸出字串 ...