Python列表推导式

╰半橙微兮° 2023-01-07 11:27 235阅读 0赞

Python列表推导式

列表推导式举例:Python打印99乘法表

  1. print('\n'.join([''.join(['%s*%s=%-2s '%(y,x,x*y)for y in range(1,x+1)])for x in range(1,10)]))

在这里插入图片描述

  1. print('\n'.join([' '.join([f"{j}x{i}={i*j}" for j in range(1, i + 1)]) for i in range(1, 10)]))

列表推导式官网文档链接

一、列表推导式

列表推导式书写形式:

[表达式 for 变量 in 列表]

[表达式 for 变量 in 列表 if 条件]

1、列表中创建列表

  1. # 计算0~9所有偶数平方
  2. squares = []
  3. for x in range(10):
  4. if x%2 == 0:
  5. squares.append(x**2)
  6. squares
  7. [0, 4, 16, 36, 64]

2、如果使用列表推导式,代码会精简、易读很多

  1. squares = [x**2 for x in range(10) if x%2==0]
  2. squares
  3. [0, 4, 16, 36, 64]

3、可以有两个for循环遍历两个变量

  1. # 注意,这里的x和y没有关系
  2. [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
  3. [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
  4. names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
  5. ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
  6. print([name for lst in names for name in lst if name.count('e') >= 2]) # 注意遍历顺序,这是实现的关键

4、结果元素可以使用各种函数加工

  1. [(str(x), x**2) for x in range(6)]
  2. [('0', 0), ('1', 1), ('2', 4), ('3', 9), ('4', 16), ('5', 25)]

5、可以嵌套遍历两层结构

  1. # 注意,这里的x和y是有关系的
  2. vec = [[1,2,3], [4,5,6], [7,8,9]]
  3. [y for x in vec for y in x]
  4. [1, 2, 3, 4, 5, 6, 7, 8, 9]

二、集合set推导式

将中括号换成大括号,就变成了集合set推导式

  1. # 返回的是去重元素的集合
  2. a = {
  3. x for x in 'abracadabra' if x not in 'abc'}
  4. a
  5. {'d', 'r'}

三、字典dict推导式

将中括号换成大括号,并且返回元素是Key:Value形式,就变成了字典dict推导式

  1. # 返回的是一个新的字典
  2. {
  3. str(x): x**2 for x in (2, 4, 6)}
  4. {'2': 4, '4': 16, '6': 36}

将一个字典的key和value对调

  1. mcase = {
  2. 'a': 10, 'b': 34}
  3. mcase_frequency = {
  4. mcase[k]: k for k in mcase}
  5. print(mcase_frequency)

发表评论

表情:
评论列表 (有 0 条评论,235人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python列表推导

    列表推导式提供了一种创建列表的简洁方法。 它由包含表达式的括号组成,后跟一个 for 子句,然后是 零个或多个 for 或 if 子句。表达式可以是任何东西,这意味着您可

    相关 python列表推导

    python列表推导式创建列表的方式更简洁。常见的用法为,对序列或可迭代对象中的每个元素应用某种操作,用生成的结果创建新的列表;或用满足特定条件的元素创建子序列 pl

    相关 Python列表推导

    列表推导式概念: 列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。 列表推导式书写形式: 1、list = \[Express for