最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Python推导式代码详解

XAMPP案例 admin 112浏览 0评论

超级简洁方便的Python推导式

推导式 comprehensions(又称解析式),是 python 的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列。

在Python中有三种推导式,分别是:

  • 列表( list)推导式
  • 字典( dict)推导式
  • 集合( set)推导式

列表( list)推导式

列表推导式有以下两种语法

  • 变量名 = [表达式 for 变量 in 列表 for 变量 in XXX]
  • 变量名 = [表达式 for 变量 in 列表 if 条件]

上面两种语法的语义分别为:

  • 遍历出列表中的内容给变量,表达式根据变量值进行逻辑运算。
  • 遍历列表中的内容给变量,然后进行判断,符合的值再给表达式。

文字解释很苍白,也不好理解,我来给大家举两个示例,分别展示上面两种语法,大家一目了然:

  • 语法一:
  1. # 变量名 = [表达式 for 变量 in 列表 for 变量 in XXX]
  2. var = [x**2 for x in range(5)]
  3. print(var)
  4. # [0, 1, 4, 9, 16]
  5. var = [x*y for x in range(5) for y in range(3, 5)]
  6. print(var)
  7. # [0, 0, 3, 4, 6, 8, 9, 12, 12, 16]

从上面的两个代码示例应该很容易就可以理解语法一的内容。

  • 语法二:
  1. # 变量名 = [表达式 for 变量 in 列表 if 条件]
  2. var = [x for x in range(10) if x % 2 == 0]
  3. print(var)
  4. # [0, 2, 4, 6, 8]

上面这个示例就是生成一个0到10之间的一个偶数列表,主要就是通过后面的if语句来进行控制的。

字典( dict)推导式

  • 字典推导式是列表推导式思想的延续,语法差不多,只不过产生的是字典而已。
  • 字典推导式格式:
  • 变量名 = {….}
  • 练习:将字典中的 key 和 value 进行对换。
  1. s_dict = {'a': 2, 'b': 4, 'c': 1}
  2. e_dict = {v: k for k, v in s_dict.items()}
  3. print(e_dict)
  4. # {2: 'a', 4: 'b', 1: 'c'}

上面代码就是将原始字典的key 和 value 进行对换,结果也是正确的。

集合( set)推导式

  • 集合推导式跟列表推导式非常相似,唯一区别在于用 { } 代替 [ ]

看个示例就会明白了,集合与列表相比,就是没有重复值:

  1. # 列表推导式
  2. var = [x*y for x in range(5) for y in range(3, 5)]
  3. print(var)
  4. # [0, 0, 3, 4, 6, 8, 9, 12, 12, 16]
  5. # 集合推导式
  6. var = {x*y for x in range(5) for y in range(3, 5)}
  7. print(var)
  8. # {0, 3, 4, 6, 8, 9, 12, 16}

可以看到语法类似,就是集合推导式会去重,别的都和列表推导式一样。

 

转载请注明:XAMPP中文组官网 » Python推导式代码详解