列表詳解

jhchena發表於2024-03-05

1. 列表

如果想要表示兩個同學 users = "李,李航...".

以後想要表示多個”事物“,可以使用列表。

users = ["李奇","奇",99]
  • 公共功能

    • len

      users = ["李奇","航",99]
      val = len(users)
      print(val) # 3
      
    • 索引

      users = ["李奇","航",99]
      val = users[0]
      print(val)
      
    • 切片

      users = ["李奇","航",99]
      
      val = users[0:2]
      
    • 刪除(數字/布林/字串除外)

      users = ["李奇","航",99]
      # 方式一
      users.pop(1)
      print(users)
      
      # 方式二:
      del users[1]
      print(users)
      

      注意:

      • 字串本身不能修改或刪除【不可變型別】 v1 = "alex".upper()
      • 列表是可變型別。
    • 修改(字串/數字/布林除外)

      users = ["李邵奇","奇航",99]
      users[2] = 66
      
      users[0] = '李傑'
      users[0][1]
      
    • 步長

      users = ["李邵奇","奇航",99]
      
      val = users[0:2:2]
      
    • 練習題

      """
      實現一個整數加法計算器(兩個數相加):
      
      如:content = input("請輸入內容:") 使用者輸入:5+9或5+ 9或5 + 9(含空白),然後進行分割轉換最終進行整數的計算得到結果。
      """
      
      
      
      # 思路一:
      """
      content = input('請輸入:') # [5+9]  或 [5 +9]  或者 [ 5 + 9 ]
      content = content.strip() # [5+9]  或 [5 +9]  或者 [5 + 9]
      v1 = int(content[0])
      v2 = int(content[-1])
      v3 = v1 + v2 
      """
      
      # 思路二:
      """
      content = input('請輸入:') # [5+9]  或 [5 +9]  或者 [ 5 + 9 ]
      content_len = len(content)
      index = 0
      total = 0
      while True:
          char = content[index]
          if char.isdigit():
              total += int(char)
          index += 1
          if index == content_len:
              break
      print(total)
      """
      
      # 思路三:
      """
      content = input('請輸入:') # [5+9]  或 [5 +9]  或者 [ 5 + 9 ]
      result = content.split('+')
      # print(result) # ['55 ', ' 99 ']
      v1 = int(result[0]) # "55"
      v2 = int(result[1]) # " 99 "
      v3 = v1 + v2
      print(v3)
      """
      
    • for迴圈

      """
      users = ['李邵','利奇','張三','李子']
      for i in users:
          print(i)
      """
      """
      users = ['李邵','利奇','張三','李子']
      for i in users:
          # 第一次迴圈:i=“李邵”
          print(i)
          for ele in i:
              print(ele)
      """
      
      # 練習題:請透過for迴圈和數字計數器實現:users = ['李邵奇','利奇航','張三丰','李子森']
      """
          0 李邵奇
          1 利奇航
          2 張三丰
          3 李子森
      """
      """
      # 方式一
      users = ['李邵奇','利奇航','張三丰','李子森']
      count = 0
      for i in users:
          print(count,i)
          count += 1
      """
      """
      # 方式二
      users = ['李邵奇','利奇航','張三丰','李子森']
      users_len = len(users) # 4
      for index in range(0,users_len): # [0,1,2,3]
          print(index,users[index])
      """
      
  • 獨有功能

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

      users = []
      users.append('alex')
      print(users)
      
      """
      示例一:
      users = []
      while True:
          name = input('請輸入姓名:')
          users.append(name)
          print(users)
      """
      """
      示例二:
      # 錄入使用者和密碼
      users = []
      for i in range(0,3):
          name = input('請輸入使用者名稱和密碼:')
          users.append(name)
      print(users) # ['alex,123', 'oldboy,888', 'lishaoqi,123']
      
      # 使用者和密碼校驗
      username = input('請輸入要登陸使用者名稱:')
      password = input('請輸入要登陸密碼:')
      for item in users:
          result = item.split(',') # ['alex','123']
          user = result[0]
          pwd = result[1]
          if user == username and pwd == password:
              print('登陸成功')
              break
              
      """
      
    • insert

    • remove

    • pop

    • clear

  • 總結:

    • 增:

      • append / insert
    • 刪:

      • remove / pop / clear / del users[2]
    • 改:

      • users[3] = "新值"
    • 查:

      • 索引/切片
    • 列表巢狀

      users = ["alex",0,True,[11,22,33,"老男孩"],[1,['alex','oldboy'],2,3]]
      
      users[0]
      users[2]
      users[0][2]
      users[3] # [11,22,33,"老男孩"]
      users[3][-1] # "老男孩"
      users[3][-1][1] # '男'
      users[3] = 666
      

相關文章