列表推导式

作⽤:⽤⼀个表达式创建⼀个有规律的列表或控制⼀个有规律列表。

列表推导式⼜叫列表⽣成式

创建⼀个0-10的列表。

while

  1. # 1. 准备⼀个空列表
  2. list1 = []
  3. # 2. 书写循环,依次追加数字到空列表list1中 i = 0
  4. while i < 10:
  5. list1.append(i)
  6. i += 1
  7. print(list1)

For

  1. list1 = []
  2. for i in range(10):
  3. list1.append(i)
  4. print(list1)

列表推导式实现

  1. list1 = [i for i in range(10)]
  2. print(list1)

带if的列表推导式

创建0-10的偶数列表

range()步⻓实现

  1. list1 = [i for i in range(0, 10, 2)]
  2. print(list1)

if实现

  1. list1 = [i for i in range(10) if i % 2 == 0]
  2. print(list1)

多for循环实现列表推导式

[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

  1. list1 = [(i, j) for i in range(1, 3) for j in range(3)]
  2. print(list1)

字典推导式

如果有如下两个列表

  1. list1 = ['name', 'age', 'gender']
  2. list2 = ['Tom', 20, 'man']

如何快速合并为⼀个字典?

  1. dict1 = {i: i**2 for i in range(1, 5)}
  2. print(dict1) # {1: 1, 2: 4, 3: 9, 4: 16}

将两个列表合并为⼀个字典

  1. list1 = ['name', 'age', 'gender']
  2. list2 = ['Tom', 20, 'man']
  3. dict1 = {list1[i]: list2[i] for i in range(len(list1))}
  4. print(dict1)

提取字典中⽬标数据

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

集合推导式

创建⼀个集合,数据为下⽅列表的2次⽅

  1. list1 = [1, 1, 2]
  1. list1 = [1, 1, 2]
  2. set1 = {i ** 2 for i in list1}
  3. print(set1) # {1, 4}

注意:集合有数据去重功能