鱼C论坛

 找回密码
 立即注册
查看: 849|回复: 4

[技术交流] 《零基础入门学习Python》打卡笔记(二十)

[复制链接]
发表于 2023-5-15 17:52:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 中英文泡椒 于 2023-5-15 17:35 编辑



打卡笔记:


1.再谈列表推导式

  1. B = [[0] * 3] * 3
复制代码


这样创建的B不是一个二维列表,只是对同一个列表的三次引用

  1. B[1][1] = 1
复制代码


给其中一个元素赋值,影响的不单单一个元素
  1. B
  2. [[0, 1, 0], [0, 1, 0], [0, 1, 0]]
复制代码


创建二维列表A

  1. >>> A = [0] * 3
  2. >>> for i in range(3):
  3.         A[i] = [0] * 3
  4. >>> A
  5. [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
  6. >>> A[1][1] = 1
  7. >>> A
  8. [[0, 0, 0], [0, 1, 0], [0, 0, 0]]
复制代码


用列表推导式创建嵌套列表

  1. >>> S = [[0] * 3 for i in range(3)]
  2. >>> S
  3. [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
  4. >>> S[1][1] = 1
  5. >>> S
  6. [[0, 0, 0], [0, 1, 0], [0, 0, 0]]
复制代码


2.列表推导式还可以添加一个用于筛选的if分句

[expression for target in iterable if condition]

  1. >>> even = [i for i in range(10) if i % 2 == 0]
  2. >>> even
  3. [0, 2, 4, 6, 8]
复制代码


检测先执行for语句,在执行if语句,最后执行左侧的表达式

  1. >>> even = [i + 1 for i in range(10) if i % 2 == 0]
  2. >>> even
  3. [1, 3, 5, 7, 9]
复制代码


从这五个单词中筛选出‘F’开头的单词

  1. >>> words = ["Great", "FishC", "Brilliant", "Excellent", "Fantistic"]
  2. >>> words = ["Great", "FishC", "Brilliant", "Excellent", "Fantastic"]
  3. >>> fwords = [w for w in words if w[0] == 'F']
  4. >>> fwords
  5. ['FishC', 'Fantastic']
复制代码


  3.列表推导式还可以变得更复杂一些,那就是实现嵌套

[expression for target1 in iterable1
                     for target2 in iterable2
                                                       ...
                                         for targetN in iterableN]
                                         
将二维列表降级为一维列表

  1. >>> matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  2. >>> flatten = [col for row in matrix for col in row]
  3. >>> flatten
  4. [1, 2, 3, 4, 5, 6, 7, 8, 9]
复制代码


转换成循环的实现

  1. >>> flatten = []
  2. >>> for row in matrix:
  3.         for col in row:
  4.                 flatten.append(col)

  5.                
  6. >>> flatten
  7. [1, 2, 3, 4, 5, 6, 7, 8, 9]
复制代码


笛卡尔乘积

  1. >>> [x + y for x in "fishc" for y in "FISHC"]
  2. ['fF', 'fI', 'fS', 'fH', 'fC', 'iF', 'iI', 'iS', 'iH', 'iC', 'sF', 'sI', 'sS', 'sH', 'sC', 'hF', 'hI', 'hS', 'hH', 'hC', 'cF', 'cI', 'cS', 'cH', 'cC']
复制代码


转换成循环

  1. >>> _ = []
  2. >>> for x in "fishc":
  3.         for y in "FISHC":
  4.                 _.append(x + y)

  5.                
  6. >>> _
  7. ['fF', 'fI', 'fS', 'fH', 'fC', 'iF', 'iI', 'iS', 'iH', 'iC', 'sF', 'sI', 'sS', 'sH', 'sC', 'hF', 'hI', 'hS', 'hH', 'hC', 'cF', 'cI', 'cS', 'cH', 'cC']
复制代码


[某个变量名是临时的或者无关紧要的,就可以直接用一个下划线当变量名]

  4.列表推导式的终极用法
[expression for target1 in iterable1 if condition1
                     for target2 in iterable2 if condition2
                                                                 ...
                                         for targetN in iterableN if conditionN]

举例

  1. >>> [[x, y] for x in range(10) if x % 2 == 0 for y in range(10) if y % 3 == 0]
  2. [[0, 0], [0, 3], [0, 6], [0, 9], [2, 0], [2, 3], [2, 6], [2, 9], [4, 0], [4, 3], [4, 6], [4, 9], [6, 0], [6, 3], [6, 6], [6, 9], [8, 0], [8, 3], [8, 6], [8, 9]]
复制代码


转换成循环

  1. >>> _ = []
  2. >>> for x in range(10):
  3.         if x % 2 == 0:
  4.                 for y in range(10):
  5.                         if y % 3 == 0:
  6.                                 _.append([x, y])

  7.                               
  8. >>> _
  9. [[0, 0], [0, 3], [0, 6], [0, 9], [2, 0], [2, 3], [2, 6], [2, 9], [4, 0], [4, 3], [4, 6], [4, 9], [6, 0], [6, 3], [6, 6], [6, 9], [8, 0], [8, 3], [8, 6], [8, 9]]
复制代码


程序设计原则“KISS”(全称:Keep It Simple & Stupid
)




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-15 17:53:21 | 显示全部楼层
《KISS)

评分

参与人数 1荣誉 +2 鱼币 +3 贡献 +2 收起 理由
中英文泡椒 + 2 + 3 + 2

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-15 17:54:47 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-15 17:57:50 | 显示全部楼层


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-15 20:30:20 | 显示全部楼层
怎么加载的视频连接?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 01:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表