1. 程式人生 > 實用技巧 >Python學習之資料型別的使用及內建方法Day07

Python學習之資料型別的使用及內建方法Day07

  • 引子
  • 資料型別的基本使用及內建方法

  • 列表型別

  • 元祖

  • 字典型別


資料型別的基本使用及內建方法

  • 列表list的基本使用

  • 1、用途:按照位置存放多個任意型別的值

  • 2、定義方式:在[ ]內用逗號分隔開多個任意型別的值

 l = [11,11.33,"xxx",[11,22,33]]  # l = list(...)

 print(type(l))

# list資料型別轉換:把可迭代的型別轉成列表

# 可以被for迴圈遍歷的型別都是可迭代的

 res = list("hello")

 res = list({"k1":111,'K2':2222})

 print(res)

 print(list(range(1000)))
  • 3、常用操作 + 內建的方法

=》=》=》優先掌握的操作:(*****)

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

 l=[111,222,333]

 print(id(l))

 l[0]=666

 print(l)

 print(id(l))

 l=[111,222,333]

 l[0]=666

 l[3]=777  # 列表索引不能超出範圍

 l[3]  # 列表索引不能超出範圍

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

 l=[11,22,33,44,55,66,77,88,99]

 res=l[1:7:2]

 res=l[:]

 res=l[::-1]

 print(res)
3、長度
 print(len(["aaa",111,2222]))
4、成員運算in和not in
 print(111 in ["aaa",111,2222])
5、追加
 l=[111,222,333]
 l.append(444)
 l.append(555)
  print(l)

## 插入

 l=[111,222,333]
 l.insert(1,6666)  # 索引,值
 print(l)

    
 l=[111,222,333]
 res = l.append(444)   # 值
 res = l.insert(1,444)
 print(res)
6、刪除
 l=[111,222,333]  
    
# 萬能刪除

 del l[0]

 print(l)

# l.remove(指定元素)

 res=l.remove(222)

 print(l)

 print(res)  #None

# l.pop(指定索引)

 res=l.pop(1)

 print(l)

 print(res)
7、迴圈
 l=[111,222,333]

 for x in l:

    print(x)
 for i,x in enumrate(l)
    print(i,x)

=》=》需要掌握的操作(****)

l = [11,22,33,44,33,55]
new_l = l.copy()   # new_l = l[:]  # 淺拷貝

print(len(l))  # l._len_() # 長度


# l.index()        # 檢視某一個元素出現的索引
print(l.index(33))   # 對應2號索引
print(l.index(777))  # 找不到就報錯

# l.count()        # 統計某一個元素出現的個數
print(l.count(33)) # 3  出現3次

# l.clear          # 清空列表,把列表裡面所有元素都刪掉
l.clear()
print(l)           # [] 剩下空列表

# l.extend         # 往列表裡面一次加多個值
l.extend('hello')  # 底層相當於調了一個for迴圈
l.extend([1,2,3])  
l.append([1,2,3])  # 往列表里加了一個子列表
print(l)

# l.reverse()      # 把列表裡面的元素倒過來
l.reverse()
print()

# l.sort()         # 排序
l=[11,-3,9,7,99,73]
l.sort()           # 預設從小到大的順序
l.sort(reverse=Ture) # 從大到小的順序
print(l)           
  • 該型別總結

    ​ 存多個值

    ​ 有序

​ 可變


  • 元組tuple的基本使用

  • 1、用途:元組就相當於一種不可變的列表,所以說元組也是按照位置存放多個任意型別的元素
  • 2、定義方式:在 () 內用逗號分隔開多個任意型別的元素
x = (11)
print(x,type(x))  # 11 <class 'int'>

#   整型  浮點型  字串    列表
t = (11, 11.33, "xxx", [44,55])
print(t[-1][0])   # 44
print(type(t))    # <class 'tuple'>

# tuple資料型別轉換:只要是可迭代的型別都可以轉換成元組tuple

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

t = (11,)
print(type(t))    # <class 'tuple'>

  • 3、常用操作+內建方法

優先掌握操作:(****)

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

t = (11, 22, 33)
t[0] = 7777   # 元組不支援賦值操作

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

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

3、長度

t = (11, 22, 33, 44, 55, 666)
print(len(t))    #  6

4、成員運算in和not in

t = (11, 22, 33, [44, 55, 666])
print([44, 55, 666] in t)     # True

5、迴圈

t = (11, 22, 33, [44, 55, 666])
for x in t:
print(x)
  • 需要掌握的
t = (33, 22, 33, [44, 55, 666])
print(t.count(33))   # 2  統計某個元素出現的個數
print(t.index(33, 1, 4)) # 2 指定範圍從1開始找
  • 該型別總結

​ 存多個數

​ 有序

​ 不可變:(元組指的不可變,是元組索引對應的記憶體地址不可變,

​ 如果元組內子元素是列表的話是可以改的)


  • 字典dict的基本使用

  • 1、用途:按照key:value的方式存放多個值,其中key對value應該有描述性的效果
  • 2、定義方式:在{}內用逗號分隔開多個元素,每個元素都是key:value的組合,其中value可以是
    任意型別但是key必須是不可變型別,通常是字串型別,並且key不能重複
    d={1:111111,1.1:22222222222,"k1":333333,(1,2,3):44444444,[1,2,3]:5555}  # d=dict(...)
    print(d[1])
    print(d[1.1])
    print(d[(1,2,3)])
    # TypeError: unhashable type: 'list'
    # <class 'tuple'>
    
    # dict資料型別轉換 (資料型別的轉換比較狹窄)
    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}
    
    d={}                # 造空字典
    d=dict()
    print(type(d))
    
    # {} + fromkeys 可以快速初始化字典
    
    res = {}.fromkeys(['name',"age","gender"],None) # 前面每一個值都跟None配對
    res = {}.fromkeys(['name',"age","gender"],11)  #前面每一個值都跟11配對
    res["name"]=666       # 只有name值變了,其餘的都不變
    
    # key先準備好,value值先置空None,保證初始狀態之後再賦值給value
    # 通常都是None
    res = {}.fromkeys(['name',"age","gender"],[])
    res["name"]=666
    print(res)
    res["name"].append(1111111)
    print(res)
    
  • 3、常用操作+內建的方法

    =》=》=》優先掌握的操作:(*****)

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

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

d['k1']=6666
d['k3']=6666     # 字典是可以根據不存在的key往裡面加值的
print(d)

2、長度len

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

**3、成員運算in和not in: **判斷的是key

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

4、刪除

d={"name":"egon",'age':18}
print(d)
del d["name"]      # 萬能刪除法

v = d.pop("name")  # 指定key刪除
print(d)           # 顯示key已經刪除
print(v)           # pop刪除功能會把刪除key對應的value值返回 

item = d.popitem()
print(item)  # popitme刪除法會把刪除的key和value值存成元組返回
print(d)

5、鍵keys(),值values(),鍵值對items()

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

6、迴圈

d={"name":"egon",'age':18,"gender":"male"}
for k in d.keys():
    print(k)

for k in d:         # 不加.keys()預設就是
    print(k)    

for v in d.values(): # 只遍歷value
    print(v)

for k,v in d.items():  # k,v = ('gender', 'male'),
    print(k,v)

# 用list的方式還原成Python 2 的樣子
print(list(d.keys()))
print(list(d.values()))
print(list(d.items()))

7、d.get()(取值方式)

d={"name":"egon",'age':18,"gender":"male"}
print(d["name"])      # 通常取值用這種方式
print(d.get("name"))


print(d["xxx"])      # key不存在 報錯
print(d.get("xxx"))  # 沒取到key返回None ,key值不存在的時候採用此種方式


=》=》需要掌握(****)

d={"name":"egon",'age':18,"gender":"male"}
d.clear()     # 清空字典裡面的key和value值
print(d)      # {}

d.copy()      # 淺copy

d={"name":"egon",'age':18,"gender":"xxx"}
if "gender" not in d:
    d['gender']="male" 
print(d)

d.setdefault()  # key不存在則新增key:value,key如果存在則什麼都不做
d.setdefault("gender","male")   # 與上面if 同種功能
print(d)


d.update()  # 更新字典,不相同的加入老字典,相同的新替舊
d={"name":"egon",'age':18,"gender":"male"}
d.update({"k1":111,"name":"xxx"})   #
print(d)
  • 該型別總結

​ 存多個值

​ 無序

​ 可變

d={'k1':111}
print(id(d))
d['k1']=2222222
print(id(d))