11 公共方法

11.1 公共运算符

运算符 描述 支持的容器类型
+ 合并 字符串、列表、元组
* 复制 字符串、列表、元组
in 元素是否存在 字符串、列表、元组、字典
not in 元素是否不存在 字符串、列表、元组、字典
  • 合并+

      # 1. 字符串 
      str1 = 'aa'
      str2 = 'bb'
      str3 = str1 + str2
      print(str3)  # aabb
    
      # 2. 列表 
      list1 = [1, 2]
      list2 = [10, 20]
      list3 = list1 + list2
      print(list3)  # [1, 2, 10, 20]
    
      # 3. 元组 
      t1 = (1, 2)
      t2 = (10, 20)
      t3 = t1 + t2
      print(t3)  # (10, 20, 100, 200)
    
  • 复制*

      # 1. 字符串
      print('-' * 10)  # ----------
    
      # 2. 列表
      list1 = ['hello']
      print(list1 * 4)  # ['hello', 'hello', 'hello', 'hello']
    
      # 3. 元组
      t1 = ('world',)
      print(t1 * 4)  # ('world', 'world', 'world', 'world')
    
  • in 或not in

      # 1. 字符串
      print('a' in 'abcd')  # True
      print('a' not in 'abcd')  # False
    
      # 2. 列表
      list1 = ['a', 'b', 'c', 'd']
      print('a' in list1)  # True
      print('a' not in list1)  # False
    
      # 3. 元组
      t1 = ('a', 'b', 'c', 'd')
      print('aa' in t1)  # False
      print('aa' not in t1)  # True
    

11.2 公共方法

函数 描述
len() 计算容器中元素个数
del 或 del() 删除
max() 返回容器中元素最大值
min() 返回容器中元素最小值
range(start, end, step) 生成从start到end的数字,步长为 step,供for循环使用
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
  • len()

      # 1. 字符串
      str1 = 'abcdefg'
      print(len(str1))  # 7
    
      # 2. 列表
      list1 = [10, 20, 30, 40]
      print(len(list1))  # 4
    
      # 3. 元组
      t1 = (10, 20, 30, 40, 50)
      print(len(t1))  # 5
    
      # 4. 集合
      s1 = {10, 20, 30}
      print(len(s1))  # 3
    
      # 5. 字典
      dict1 = {'name': 'Rose', 'age': 18}
      print(len(dict1))  # 2
    
  • del()

     # 1. 字符串
     str1 = 'abcdefg'
     del str1
     print(str1)
    
     # 2. 列表
     list1 = [10, 20, 30, 40]
     del(list1[0])
     print(list1)  # [20, 30, 40]
    
  • max()

      # 1. 字符串
      str1 = 'abcdefg'
      print(max(str1))  # g
    
      # 2. 列表
      list1 = [10, 20, 30, 40]
      print(max(list1))  # 40
    
  • min()

      # 1. 字符串
      str1 = 'abcdefg'
      print(min(str1))  # a
    
      # 2. 列表
      list1 = [10, 20, 30, 40]
      print(min(list1))  # 10
    
  • range():range()生成的序列不包含end数字

      for i in range(1, 10, 1):
          print(i) # 1 2 3 4 5 6 7 8 9
    
      for i in range(1, 10, 2):
          print(i) # 1 3 5 7 9
    
      for i in range(10):
          print(i) # 0 1 2 3 4 5 6 7 8 9
    
  • enumerate():enumerate(可遍历对象, start=0),start参数用来设置遍历数据的下标的起始值,默认为0

      list1 = ['a', 'b', 'c', 'd', 'e']
    
      for i in enumerate(list1):
          print(i)
    
      for index, char in enumerate(list1, start=1):
          print(f'下标是{index}, 对应的字符是{char}')
    
      (0, 'a')
      (1, 'b')
      (2, 'c')
      (3, 'd')
      (4, 'e')
      下标是1, 对应的字符是a
      下标是2, 对应的字符是b
      下标是3, 对应的字符是c
      下标是4, 对应的字符是d
      下标是5, 对应的字符是e
    

11.3 容器类型转换

  • tuple():将某个序列转换成元组

      list1 = [10, 20, 30, 40, 50, 20]
      s1 = {100, 200, 300, 400, 500}
    
      print(tuple(list1))
      print(tuple(s1))
    
  • list():将某个序列转换成列表

      t1 = ('a', 'b', 'c', 'd', 'e')
      s1 = {100, 200, 300, 400, 500}
    
      print(list(t1))
      print(list(s1))
    
  • set():将某个序列转换成集合

      list1 = [10, 20, 30, 40, 50, 20]
      t1 = ('a', 'b', 'c', 'd', 'e')
    
      print(set(list1))
      print(set(t1))
    
    • 集合可以快速完成列表去重
    • 集合不支持下标

11.4 推导式

11.4.1 列表推导式

  • 作用:用一个表达式创建一个有规律的列表或控制一个有规律列表。列表推导式又叫列表生成式
  • 格式:
      [表达式 for 变量 in 列表] [out_exp_res for out_exp in input_list]
      [表达式 for 变量 in 列表 if 条件] [out_exp_res for out_exp in input_list if condition]
    
    • out_exp_res:列表生成元素表达式,可以是有返回值的函数
    • for out_exp in input_list:迭代 input_list 将 out_exp 传入到 out_exp_res 表达式中
    • if condition:条件语句,可以过滤列表中不符合条件的值
  • 需求:创建一个 0-10 的列表

    • while循环实现

      # 1. 准备一个空列表
      list1 = []
      
      # 2. 书写循环,依次追加数字到空列表list1中
      i = 0
      while i < 10:
          list1.append(i)
          i += 1
      
      print(list1)
      
    • for循环实现

      list1 = []
      for i in range(10):
          list1.append(i)
      
      print(list1)
      
    • 列表推导式实现
      list1 = [i for i in range(10)]
      print(list1)
      
  • 带if的列表推导式
    • 需求:创建0-10的偶数列表
    • range()步长实现
      list1 = [i for i in range(0, 10, 2)]
      print(list1)
      
    • if实现
      list1 = [i for i in range(10) if i % 2 == 0]
      print(list1)
      
  • 多个for循环实现列表推导式
    • 需求:创建列表[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
    • 代码实现
      list1 = [(i, j) for i in range(1, 3) for j in range(3)]
      print(list1)
      

11.4.2 字典推导式

  • 字典推导式作用:快速合并列表为字典或提取字典中目标数据
  • 创建一个字典:字典key是1-5数字,value是这个数字的2次方
      dict1 = {i: i**2 for i in range(1, 5)}
      print(dict1)  # {1: 1, 2: 4, 3: 9, 4: 16}
    
  • 将两个列表合并为一个字典

      list1 = ['name', 'age', 'gender']
      list2 = ['Tom', 20, 'man']
    
      dict1 = {list1[i]: list2[i] for i in range(len(list1))}
      print(dict1)
    
  • 提取字典中目标数据

      counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
    
      # 需求:提取上述电脑数量大于等于200的字典数据
      count1 = {key: value for key, value in counts.items() if value >= 200}
      print(count1)  # {'MBP': 268, 'DELL': 201}
    

11.4.3 集合推导式

  • 需求:创建一个集合,数据为下方列表的2次方
      list1 = [1, 1, 2]
    
  • 代码如下:
      list1 = [1, 1, 2]
      set1 = {i ** 2 for i in list1}
      print(set1)  # {1, 4}
    
    • 集合有数据去重功能

results matching ""

    No results matching ""