第三章 數據類型之列表、字典、集合

3.4 列表(list)

  1. 格式html

    users = ["ji",1,3,"gyhj"]
  2. 公共方法算法

    • 1.len #計算長度app

      users = ["ji",1,3,"gyhj"]
      val = len(users)
      print(val)  # 3
      View Code

       

    • 2.索引 #輸出某一個元素ide

      users = ["ji",1,3,"gyhj"]
      val = users[1]
      print(val)  # 1 
      View Code

       

    • 3.切片 #輸出某一段元素函數

      users = ["ji",1,3,"gyhj"]
      val = users[0:2]
      print(val)  # "ji",1
      View Code

       

    • 4.修改(字符串/數字/布爾除外)ui

      users = ["ji",1,3,"gyhj"]
      users[2] = 66
      print(users)    # ['ji', 1, 66, 'gyhj']
      View Code

       

    • 5.步長 #選取列表中第幾個元素spa

      users = ["ji",1,3,"gyhj"]
      val = users[0:3:2]
      print(val)  # ['ji', 3]
      View Code

       

    • 6.for循環3d

      users = ["ji",1,3,"gyhj"]
      for i in users:
      print(i) # 每一個元素一次打印
      """
      users = ["ji","asdgfh","tryu","gyhj"]
      for i in users:
       # 第一次循環:i=「ji」
      for e in i:
      print(e) # 打印第一個元素中每一個字符
      """
      # 練習題:請經過for循環和數字計數器實現:users = ['李邵奇','利奇航','張三丰','李子森']
       1 qwe
       2 asd
       3 zxc
       4 rty
      # 方式一
      users = ['qwe','asd','zxc','rty']
      count = 1
      for i in users:
          print(count,i)
          count += 1
      # 方式二
      users = ['qwe','asd' ,'zxc','rty']
      users_len = len(users) # 4
      for index in range(0,users_len): # [0,1,2,3]
          print(index,users[index])
      View Code

       

      注意:for和while的應用場景:code

      • 有窮盡優先使用for,htm

      • 無窮盡用while

  3.獨有方法

    • 1.append,在列表的最後追加一個元素

      # 示例
      users = ["sdxfc"]
      while True:
       name = input('請輸入姓名:')
       users.append(name)
       print(users)   # ['sdxfc', 'sdf']
      View Code

       

    • 2.insert #在指定索引位置進行插入元素

      users = ['qwe','asd','zxc','rty']
      users.insert(1,'zxc')
      print(users)    # ['qwe', 'zxc', 'asd', 'zxc', 'rty']
      View Code

       

    • 3.remove # 刪除 注意:()裏不加刪除內容報錯

      .pop # 刪除 注意:()裏不加數字,默認刪除最後一個

      del # 刪除 注意:()裏不加數字報錯

      .clear # 刪除列表裏全部元素 注意:()裏不能加數字

      users = ["ji",1,3,"gyhj"]
      # 方式一
      users.remove('ji')
      print(users)    # [1, 3, 'gyhj']
      # 方式二
      users.pop(1)
      print(users)    #['ji', 3, 'gyhj']
      # 方式三
      del users[1]
      print(users)    #['ji', 3, 'gyhj']
      # 方式四
      users.clear()
      print(users)    # []
      View Code

       

      注意:

      • 字符串自己不能修改或刪除【不可變類型】

      • 列表是【可變類型】

    • 4.".reverse" #反轉

      v1 = [1,2,3111,32,13]
      print(v1)   # [1, 2, 3111, 32, 13]
      v1.reverse()
      print(v1)   # [13, 32, 3111, 2, 1]
      View Code

       

    • 5."sort" # 排序

      v1 = [1,2,3111,32,13]
      v1.sort(reverse=False) # 從小到大(默認)
      print(v1)   # [11, 13, 22, 32, 3111]
      v1.sort(reverse=True) # 從大到小
      print(v1)   # [3111, 32, 22, 13, 11]
      View Code
       
    • 6.extend() 在列表末尾一次性追加另外一個序列中的多個值

      list1 = ['Google', 'Runoob', 'Taobao']
      list2=list(range(5)) # 建立 0-4 的列表
      list1.extend(list2)  # 擴展列表
      print ("擴展後的列表:", list1)
      # 擴展後的列表: ['Google', 'Runoob', 'Taobao', 0, 1, 2, 3, 4]
      View Code

       

  4.總結

    • 1.增:

      • .append / .insert

    • 2.刪:

      • .remove / .pop /. clear / del users[2]

    • 3.改:

      • users[3] = "新值"

    • 4.查:

      • 索引/切片

    • 5.列表嵌套

      users = ["a",0,True,[1,2,3,"kjhg"],[4,['sdf','dfg'],5,6]]
      users[0] # a
      users[2] # True
      users[3][2] # 3
      users[3][-1] # "kjhg"
      users[3][-1][-1] # 'g'
      users[3] = 666 # ['a', 0, True, 666, [4, ['sdf', 'dfg'], 5, 6]]

 

3.5 元祖(tuble)

  1.格式

    • users = [11,22,33] # 列表(元素可變)

    • users = (11,22,33) # 元組(元素不可變)

  二、公共方法

    • 1.索引(排除:int/bool)

      users = (11,22,33)
      print(users[0]) # 11
      print(users[-1]) # 33
    • 2.切片(排除:int/bool)

      users = (11,22,33)
      print(users[0:2])
    • 3.步長(排除:int/bool)

      users = (11,22,33,"qwerty")
      print(users[0:2:2])
    • 4.for循環(排除:int/bool)

      users = (11,22,33,"qwerty")
      for item in users:
        print(item)
    • 5.len(排除:int/bool)

      users = (11,22,33,"qwerty")
      print(len(users))

  三、獨有方法(無)

  四、 特殊

    • 元組中的元素(兒子)不可被修改/刪除

      # 示例一:
      v1 = (11,22,33)
      v1[1] = 999 # 錯誤
      v1 = 999  # 正確
      # 示例二:能夠嵌套
      v1 = (11,22,33,(44,55,66),(11,2,(99,88,),3))
      # 示例三:嵌套
      v2 = [11,22,33,(11,22,33)]
      v2[-1][1] = 99 # 錯誤
      v2[-1] = 123 # 正確
      # 示例四:嵌套
      v3 = (11,[1,2,3],22,33)
      v3[1] = 666 # 錯誤
      v3[1][2] = 123
      View Code

       

    • 元組嵌套

      # 錯誤示例
      v3 = (11,[1,2,3],22,33)
      v3[1] = 666
      v3[1][2] = 123

 

3.6 字典(dict)

  1.字典含義

    • 幫助用戶去表示一個事物的信息(事物是有多個屬性)。

    • 基本格式

      data = {鍵:值,鍵:值,鍵:值,鍵:值,鍵:值,鍵:值,}
      # 練習題
      userinfo = {'usenrame':'li','password':"xiangmin"}
      user = input('請輸入用戶:')
      pwd = input('請輸入密碼:')
      if userinfo['username'] == user and userinfo['password'] == pwd:
          print('登錄成功')
      else:
          print('用戶名或密碼錯誤')
      View Code

       

  2.獨有功能

    info = {"name":'li','age':18,'gender':'男',}
    • 1.".keys" ,獲取字典中全部的鍵

      for item in info.keys():
      print(item) #循環獲取字典中全部的鍵
    • 2.".values" ,獲取字典中全部的值

      for item in info.values():
      print(item) #循環獲取字典中全部的鍵
    • 3.".items" ,獲取字典中的全部鍵值對。

      del info['gender']
      print(info) # {'name': 'li', 'age': 18}
    • 4.".get" ,函數返回指定鍵的值,若是值不在字典中返回默認值。

      # 示例 一
      dict = {'Name': 'Zara', 'Age': 27}
      print(dict.get('Age'))  # 27
      # 示例 二
      dict = {'Name': 'Zara', 'Age': 27}
      print(dict.get('asd'))  # None
      print(dict.get('asd',"123"))    # 123
      View Code

       

    • 5.".update" ,更新,字典裏不存在增長/存在更新

      # 示例 一
      dict = {'Name': 'Runoob', 'Age': 7}
      a = {'Age':9}
      dict.update(a)
      print(dict)     # {'Name': 'Runoob', 'Age': 9}
      # 示例 二
      dict = {'Name': 'Runoob', 'Age': 7}
      dict2 = {'Sex': 'female'}
      dict.update(dict2)
      print("更新字典 dict :- ", dict)
      View Code

       

    • 6."del" ,刪除 -#鍵值對一個總體,要刪全刪

      ".pop" ,刪除

      ".clear",刪除(清空全部內容)

      info = {"name":'li','age':18,'gender':'',}
      # 方法一
      del info['gender']
      print(info) # {'name': 'li', 'age': 18}
      # 方法二
      a = info.pop('name')
      print(info) # {'age': 18, 'gender': '男'}
      # 方法三
      info.clear()
      print(info) # {}
      View Code

       

  3.公共功能

    • 1.len

      info = {"name":'li','age':18,'gender':'男',}
      print(len(info)) # 3
    • 2.索引

      info = {"name":'li','age':18,'gender':'男',}
      a = info['name']
      b = info['age']
      print(a) # li
      print(b) # 18
    • 3.for 循環

      info = {"name":'li','age':18,'gender':'',}
      for a in info.keys():
          print(a)    # 循環打印出全部鍵
      for b in info.values():
          print(b)    # 循環打印出全部值
      for c,d in info.items():
          print(c,d)  # 循環打印出全部鍵值
      View Code

       

    • 4.修改 #存在就修改/不存在就增長

      # 改值
      info = {"name":'li','age':18,'gender':'',}
      info['age'] = 99
      print(info) # {'name': 'li', 'age': 99, 'gender': '男'}
      # 改鍵
      # 刪除後再增長
      del info['gender']
      print(info) # {'name': 'li', 'age': 18}
      info['asd'] = '123'
      print(info) # {'name': 'li', 'age': 18, 'asd': '123'}
      View Code

       

3.7 集合(set)

  1.集合含義

    • 一個無序的不重複元素序列。

    • 可使用大括號 { } 或者 set() 函數建立集合,注意:建立一個空集合必須用 set() 而不是 { },由於 { } 是用來建立一個空字典。

    • 空集合:set()

    • 基本格式

      a = {1,2,3,4,5,6}
      parame = {value01,value02,...}
      # 或者
      set(value01,value02,...)

  2.獨有方法

    • 1.".add()" ,添加:所添加值沒有原值輸出、新值增長

      info = {"name",'li','age',18,'gender','',}
      info.add(11)
      print(info)     # {'li', 11, 18, '男', 'gender', 'age', 'name'}
      View Code

       

    • 2.".discard()" ,刪除:所刪除值沒有原值輸出、不會報錯

      info = {"name",'li','age',18,'gender','',}
      info.discard(18)
      print(info)     #{'男', 'li', 'name', 'age', 'gender'}鍵
      View Code

       

    • 3.".update()" ,批量添加。

      info = {"name",'li','age',18,'gender','',}
      del info['gender']
      print(info) # {'name': 'li', 'age': 18}
      View Code

       

    • 4.".intersection()" ,交集:生成新值。括號裏能夠列表、集合、元祖。

      info = {"name",'li','age',18,'gender','',}
      result = info.intersection({1,'li',''})
      print(result)   # {'li', '男'}
      View Code

       

    • 5.".union()" ,並集:生成新值。括號裏能夠列表、集合、元祖。

      info = {"name",'li','age',18,'gender','',}
      result = info.union({1,'li',''})
      print(result)   # {'gender', 1, '男', 18, 'name', 'age', 'li'}
      View Code

       

    • 6.".difference()" ,差集:生成新值。括號裏能夠列表、集合、元祖。

      info = {"name",'li','age',18,'gender','',}
      result = info.difference({1,'li',''})
      print(result)   # {'name', 18, 'age', 'gender'}
      View Code

       

    • 7.".symmetric_difference()" ,對稱差集:生成新值。括號裏能夠列表、集合、元祖。

      info = {"name",'li','age',18,'gender','',}
      result = info.symmetric_difference({1,'li',''})
      print(result)   # {1, 'name', 'gender', 18, 'age'}
      View Code

       

  3.公共方法

    • len

      info = {"name",'li','age',18,'gender','男',}
      print(len(info)) # 6
    • for 循環

      info = {"name",'li','age',18,'gender','男',}
      for a in info:
         print(a) # 循環打印出全部元素

  4.特殊狀況

    • 一、集合與列表取交集

      info = {"name",'li','age',18,'gender','男',}
      result = info.intersection([1,'li','男'])
      print(result) # {'li', '男'} # {'li', '男'}
    • 2.集合中出現0與False(誰在前輸出誰)

      info = {0, 2, 3, 4, False, "國風", None, (1, 2, 3)}
      print(info) # {0, '國風', 2, 3, 4, None, (1, 2, 3)}
    • 3.字典中1與Ture同時爲鍵(誰在前把後面值賦給前面的鍵)

      info = {
          1:'alex',
          True:'oldboy'
      }
      print(info)     # {1: 'oldboy'}
      View Code

       

  5.總結

    1. 列表/字典/集合 -> 不能放在集合中+不能做爲字典的key(unhashable)

    2. hash(哈希):由於在內部會將值進行哈希算法並獲得一個數值(對應內存地址),之後用於快速查找。

 

原文連接:https://www.danpinsuiyue.com/2535343987.html

相關文章
相關標籤/搜索