1. 程式人生 > 實用技巧 >基本資料型別常用操作及內建方法 —(list\tuple\dict)

基本資料型別常用操作及內建方法 —(list\tuple\dict)

目錄

列表型別

列表用途:

列表(list) 按照位置存放多個型別的值

定義方式:

在[]內用逗號分隔開多個任意型別的值

l = [111,222,333,'xxx',[11,111,2]] # l =list(...)

資料型別轉換

把可迭代的型別轉換成列表,可以被for迴圈遍歷的型別就是可迭代型別、

res = list ('hello ')
print(res)
>>>['h', 'e', 'l', 'l', 'o', ' ']
res= list({"k1":111,"k2":222})
print(res)
>>>['k1', 'k2']

操作方法

1.按索引存取值(正向存取+反向存取):即可存也可以取

取根據索引取值,存是指的覆蓋掉原來索引對應的記憶體地址

l=[111,222,3333]
l[0]=6666  #
# l[3]=7777  #列表索引不能超出範圍  否則報錯
print(l)
# >>>[6666, 222, 3333]

2.切片

根據索引切片

l=[11,22,33,44,55,66,77]
l1=l[0:6:2]  #起始位置、終點位置、步長
print(l)
print(l1)
>>>[11, 22, 33, 44, 55, 66, 77]
>>>[11, 33, 55]

切片拷貝是輸入淺拷貝

3.長度

l=[11,22,33,44,55,66,77]
print(len(l))
>>>7

4.成員運算in 和 not in

print(111 in ["aaa",111,2222])
>>>True

5.迴圈

l=[11,22,33,44,55,66,77]
for x in l:
    print(x)
# >>>從第一個索引開始迴圈一遍就賦值給x 一直迴圈到最後一個元素

for i,x in enumerate(l):
    print(i,x)
# >>>0 11
# >>>1 22
# >>>...
#for 賦值變數名  in enumerate (list):
#可以每個值迴圈前面顯示索引

6.列表(list) .方法

6.1 del 刪除也是根據索引
l=[11,22,33,44,55,66,77]
del l[0]
print(l)
# >>>[22, 33, 44, 55, 66, 77]
6.2 list.remove 指定元素刪除
l=[11,22,33,44,55,66,77]
l.remove(77)
print(l)
>>>[11, 22, 33, 44, 55, 66]
6.3 list.pop 根據索引刪除
l=[11,22,33,44,55,66,77]
print(l.pop(0))
>>>11
# 對比上面兩個pop有返回值 del 和 remove沒有返回值
6.5 list.append 追加 列表末尾追加新的元素
l=[11,22,33,44,55,66,77]
# l.append(值)
print(l.append(88))
>>>None   #無返回值
print(l)
>>>[11, 22, 33, 44, 55, 66, 77, 88]
6.6 list.insert 插入 根據索引追加到指定位置前
l=[11,22,33,44,55,66,77]   #無返回值
l.insert(1,"aa")
print(l)
>>>[11, 'aa', 22, 33, 44, 55, 66, 77]

7.列表(list) .方法 追加

7.1 list.copy()

對應元組6.2

# 拷貝的都是索引 和對應的記憶體地址 所以淺層拷貝雙方不可變型別一方變一方沒有影響,但是拷貝的包含可變型別,那麼當深層的可變型別發生變化,拷貝雙方一起改變

l=[11,22,33,44,33,33,55]
new_l = l.copy()  # new_l = l[:]
print(l)
print(new_l)
>>>[11, 22, 33, 44, 33, 33, 55]
>>>[11, 22, 33, 44, 33, 33, 55]
7.2list.index 查詢索引

對應元組6.1

l=[11,22,33,44,33,33,55]
print(l.index(55))
>>>6
7.2 list.clear() 清空列表
# l=[11,22,33,44,33,33,55]
l.clear()
print(l)
>>>[]
7.3 list.exten() 迴圈加值
l=[11,22,33,44,55,33,33,33]
# l.extend()   能被for迴圈都可以   新增多個值
# l.extend("hello")
# print(l)
# >>>[11, 22, 33, 44, 55, 33, 33, 33, 'h', 'e', 'l', 'l', 'o']
# l.extend([1,2,3])
# print(l)
# >>>[11, 22, 33, 44, 55, 33, 33, 33, 1, 2, 3]

l.extend([[1,2],3])
print(l)
>>>[11, 22, 33, 44, 55, 33, 33, 33, [1, 2], 3]
7.5 list.reverse() 倒序排列
l=[1,2,3,4,5,6,7]
l.reverse()
print(l)
>>>[7, 6, 5, 4, 3, 2, 1]
#  不是很靠譜的倒序排列  原因如下
l=[11,22,33,44,55,33,33,33]
l.reverse()
print(l)
## >>>[33, 33, 33, 55, 44, 33, 22, 11]
7.6 list.sort()排序
l=[11,22,33,44,55,33,33,33]
l.sort(reverse=True)
print(l)
# # >>>[55, 44, 33, 33, 33, 33, 22, 11]
# l.sort()
# print(l)
# # >>>[11, 22, 33, 33, 33, 33, 44, 55]

列表(list)總結

# 存一個值or存多個值
# 多個值
# 有序or無序
# 有序
# 可變or不可變(1、可變:值變,id不變。可變==不可hash 2、不可變:值變,id就變。不可變==可hash)
# 可變

元組型別

元組用途:

元組(tuple) 就相當於一種不可變的列表,所以說元組也是按照位置存放多個任意型別的元素

定義方式:

在()內用逗號分隔開多個任意型別的元素

t=(1,2.1,"william",["lili",1,2.1],(2,2.1))
print(type(t))
>>>class 'tuple'

注意:如果元組內只有一個元素,必須用逗號分割

t=(1,)
print(type(t))

資料型別轉換

tuple 轉換可迭代的型別

操作方法*****

1.按索引取值(正向取+反向取)

1、按索引取值(正向取+反向取):只能取

t=(11,22,33)
print(t[0])  #正向取
# >>>11
print(t[-1])  #反向取
# >>>33

2.切片

2、切片(顧頭不顧尾,步長)

t=(11,22,33,44,55)
print(t[0:4:2])
# >>>(11, 33)

3.長度

3、長度

t=(11,22,33,44,55,66,77,88)
print(len(t))
# >>>8

4.成員運算in和not in

4、成員運算in 和not in

t=(11,22,33,44,55,66,77,88)
print((11) in t)
# >>>True

5.迴圈

5、迴圈

6. 元組.方法

6.1 .count() # 查詢元組內元素存在的數量
t=(11,11.33,"xxx","xxx","xxx",[22,33])
print(t.count("xxx"))
# >>>3
6.2 .index() #查詢對應的索引值
t=(11,11.33,"xxx","xxx","xxx",[22,33])
print(t.index("xxx"))
# >>>2
print(t.index([22,33]))
# >>>5

元組(tuple)型別總結

# 存一個值or存多個值
# 多個值
# 有序or無序
# 有序
# 可變or不可變(1、可變:值變,id不變。可變==不可hash 2、不可變:值變,id就變。不可變==可hash)
# 不可變

字典型別

字典用途:

字典dict 按照key:value的方式存放多個值,其中key對value應該由描述性的效果

定義方式:

{}內用逗號分隔開多個元素,每個元素都是key:value的組合,其中value可以是任意值,但是key必須是不可變型別,通常是字串型別

否則key用了可變型別就會報錯

資料型別轉換

# res=dict([("name",'egon'),["age",18],['gender',"male"]])
# print(res)
# >>>{'name': 'egon', 'age': 18, 'gender': 'male'}

# res = dict (a=1,b=2,c=3)
# print(res)
# >>>{'a': 1, 'b': 2, 'c': 3}

操作方法

1.按key存取值:可存可取

字典可根據不存在的key 新增key:value

d={"k1":111,'k2':222}
print(d['k1'])
>>>111
d['k1']=6666
d['k3']=6666
print(d)
>>>{'k1': 6666, 'k2': 222, 'k3': 6666}

2.長度

d={"k1":111,'k2':222}
print(len(d))
>>>2

3.成員運算in和not in

判斷的都是key

# d={"name":"egon",'age':18}
# print("name" in d)

4.鍵keys(),值values(),鍵值對items()

# d={"name":"egon",'age':18,"gender":"male"}
# print(d.keys())
# print(d.values())
# print(d.items())
>>>