Python列表解析器

235 阅读1分钟

解析器

更高效(B格)的列表生成方法.

有两种书写方法:

  1. [target for target in source]: 无需函数操作
  2. list(map(function(), source]: 提取后

例如, 获取矩阵M的第二列所有元素列表:

方法一: result = [m[1] for m in M]

再例如, 对矩阵M的每一行进行单独求和 方法二: result = list(map(sum, M))

方法一还可以进行if语句判断:result = [m[1] for m in M if m[1] % 2 == 0]

事实上, 列表, 字典, 集合都支持解析器快速创建.

练习: 生成Hello的ANSCII-word字典. (提示: ord()函数用来提取字符的ANSCII码)

{ord(x): x for x in "Hello"}