1. 程式人生 > 實用技巧 >python容器資料型別

python容器資料型別

一 .容器型別(str list tuple set dict)

1.1str(字串)

轉義字元: \+字元

1.把有意義的字元變得無意義

2.把無意義的字元變得有意義

\n ,\r\n 換行

strvar = "懷才就像懷孕,\r\n時間長了才能讓人看出來"

\t 縮排

strvar = "懷才就\t像\t懷孕,時間長了才能讓人看出來"

\r 把\r後面的字串拉到當前行行首

strvar = "懷才就像懷孕,\r時間長了才能讓人看出來"
# 元字串 不產生轉義,原形化輸出字串

pathvar = r"D:\python33視訊課件\notepad++"
print(pathvar)

格式化字串

%d 整型佔位符

%s 字串佔位符

%f 浮點型佔位符

語法 : "" % (引數1,引數2,引數3)

1.2 list (列表型別)

**********特徵:可獲取,可獲取,可修改**********

# 1.定義空列表
listvar = []
print(listvar , type(listvar))

# 定義普通列表
listvar = [19,6.89,"你好",5-90j]

# 2.獲取列表中的元素
# 正向索引 0   1     2      3
listvar = [19,6.89,"你好",5-90j]
# 逆向索引 -4  -3    -2     -1
res = listvar[2] res = listvar[-2] print(res) # 3.獲取列表中最後一個元素 # 通過逆向索引下標 res = listvar[-1] print(res) # 通過len來獲取長度 # len 可以獲取容器中的元素個數(長度) res = len(listvar) print(res) length = res - 1 # 4 - 1 = 3 res = listvar[length] # 獲取最後一個元素的索引下標 4 - 1 res = listvar[ len(listvar) - 1 ] print(res)
# 4.修改列表中的元素 listvar = [19,6.89,"你好",5-90j] listvar[1] = "哈哈哈" print(listvar)

1.3 tuple (元組型別)

***************特點:可獲取,不可修改,有序***************

# 1.定義一個空元組
tuplevar = ()
print(tuplevar , type(tuplevar))

# 定義一個普通元組
# 正向索引    0       1        2         3       4
tuplevar = ("李琦","朱培峰","方金順","黃昌建","劉文博")
# 逆向索引    -5     -4        -3        -2     -1

# 2.獲取元組當中資料
res = tuplevar[3]
print(res)

# 3.修改元組當中的資料? 不可以
# tuplevar[0] = "123" error

# 4.注意點
"""區分是否是元組,由逗號這個識別符號來決定"""
tuplevar = ("你好",)
tuplevar = (345,)
tuplevar = (345+5j,)
tuplevar = 1,2
tuplevar = 5,
tuplevar = () # 什麼元素都不寫,可以表達空元組的概念;
print(tuplevar , type(tuplevar))

1.4 集合(set) 交叉並補

**********************特點:無序,自動去重**********************

# 1.定義一個集合
setvar = {"周杰倫","易烊千璽","王源","王俊凱"}
print(setvar , type(setvar) )

# 2.集合特徵: 無序
# 是否可獲取集合中的元素? 不行
# print(setvar[0]) error

# 是否可修改集合中的元素? 不行
# setvar[0] = "周潤發"

# 3.集合特徵: 自動去重
setvar = {"周杰倫","易烊千璽","王源","王俊凱","王文","王文","王文"}
print(setvar)

# 4.注意:定義一個空集合
setvar = set()
print(setvar , type(setvar))

1.5 字典型別 dict

特點
"""
字典裡的資料以鍵值對的方式進行儲存,表面上有序,實際上無序; 在python3.6版本之後,底層做了優化,儲存時,記錄了字典的定義順序 在獲取字典時,把無序儲存的資料拿出來,按照定義字典的字面順序重新排序; 語法: {鍵1:值1,鍵2:值2 , .... } """
# 1.定義一個字典
dictvar = {"haq":"胡安慶","llz":"劉靈鎮","wsf":"王生福","xhr":"熊海瑞"}
print(dictvar , type(dictvar))

# 2.獲取字典中的元素
res = dictvar["llz"]
res = dictvar["xhr"]
print(res)

# 3.修改字典中的元素
dictvar["xhr"] = "小黃人"
print(dictvar)

# 4.注意點
res = {}
print(res, type(res)) # dict

集合和字典注意點:

集合的值和字典的鍵有資料型別上的要求

允許的資料型別 (可雜湊的資料型別,不可變的數局型別): Number(int float bool complex) str tuple

不允許的資料型別(不可雜湊的資料型別,可變的資料型別): list,set dict

字典的鍵和集合的值在底層記憶體儲存時,使用了雜湊演算法
雜湊演算法的要求是該資料型別為不可變得資料型別才能夠儲存
雜湊演算法特點: 無序的雜湊;

為什麼要提出雜湊演算法?
為了把資料均勻的儲存在記憶體之後,減少雜湊碰撞
讓資料更快的儲存在記憶體中.