python入门基础知识五(for循环、公共操作与推导式)

for循环

break终止循环

a = 'abcd'
for i in a:
...     if i == 'c':
...         print("'c' stands for 'cease'")
...         break
...     print(i)
...

a
b
'c' stands for 'cease'

continue退出本次循环,继续执行下一个循环

for i in a:
...     if i == 'c':
...         print("'c' stands for 'cease'")
...         continue
...     print(i)
...

a
b
'c' stands for 'cease'
d

for…else

for i in array:

codes for loop

else:

if exit loop normally then run these codes…

for i in a:
...     if i == 'c':
...         print("'c' stands for 'cease'")
...         break
...     print(i)
... else:
...     print('This loop has ended normally.')
...

a
b
'c' stands for 'cease'    # 循环没有正常结束,没有返回预先写好的提示

for i in a:
...     if i == 'c':
...         print("'c' stands for 'cease'")
...         continue
...     print(i)
... else:
...     print('This loop has ended normally.')
...

a
b
'c' stands for 'cease'
d
This loop has ended normally.    # 循环正常结束,返回提示

公共操作

运算符

python入门基础知识五(for循环、公共操作与推导式)

公共方法:支持字符串、列表、元组、集合、字典

python入门基础知识五(for循环、公共操作与推导式)

enumerate

作用是将要给可遍历的数据对象(如,列表、元组或字符串)组合为一个索引序列,同时列出数据及其下标,一般与for循环联用。

enumerate(可遍历对象, start = 0) # 下标起始默认值为0,可不写

a = ['sun','moon','star']
for i in enumerate(a):
...     print(i)
...

(0, 'sun')
(1, 'moon')
(2, 'star')
for i in enumerate(a,start = 1):
...     print(i)
...

(1, 'sun')
(2, 'moon')
(3, 'star')
for i,j in enumerate(a):
...     print(f'The index is {i}, corresponding data is {j}')
...

The index is 0, corresponding data is sun
The index is 1, corresponding data is moon
The index is 2, corresponding data is star

推导式

主要作用是简化代码

列表的推导式

创建一个由0-10组成的列表,如果不用推导式,就必须令 a = [1,2,3,4…10]。如果创建一个从0-100的列表呢?

range(起,终,步长) # 步长如果是1可以省略不写,注意,终和下标是一样的,如果要创建0-10的数组,必须要把终的位置写在11!

a = []
for i in range(0,11):
...     a.append(i)
...     print(a)    # print的对齐位置很重要
...

[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6, 7]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

a = []
for i in range(0,11):
...     a.append(i)
... print(a)    # print的对齐位置很重要
...

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

带条件语句的列表推导式

创建一个0-10以内偶数组成的列表

a = [i for i in range(0,11,2)]
print(a)
[0, 2, 4, 6, 8, 10]

a = [i for i in range(0,11) if i%2 == 0]    # 除以2,余数为0的i
print(a)[0, 2, 4, 6, 8, 10]

字典推导式

用于将两个列表合并为字典,或提取字典中的目标数据

list1 = ['beef','mutton','pork']
list2 = [55,45,22]
a = {list1[i]:list2[i] for i in range(len(list2))}
print(a)
{'beef': 55, 'mutton': 45, 'pork': 22}

list1.append('fish')
list1
['beef', 'mutton', 'pork', 'fish']

a = {list1[i]:list2[i] for i in range(len(list2))}
print(a)
{'beef': 55, 'mutton': 45, 'pork': 22}

a = {list1[i]:list2[i] for i in range(len(list1))}  # 注意,len要用最短的那个列表,否则会报错
Traceback (most recent call last):
  File "", line 1, in
  File "", line 1, in
IndexError: list index out of range
b = {i:j for i,j in a.items() if j > 40}  # i代表的是key,j代表的是value
print(b)
{'beef': 55, 'mutton': 45}

集合推导式

不常用,主要是数字的运算

c = {2,2,3}
d = {i ** 3 for i in c}
print(d)
{8, 27}    # 集合自动去重,进行了3次方的运算

Original: https://www.cnblogs.com/randyszone/p/16520243.html
Author: randy198
Title: python入门基础知识五(for循环、公共操作与推导式)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583076/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 为Linux系统添加定时备份Mysql(Docker)指定数据库的方法

    引言使用Mysql的时候遇到需要定时备份数据库的问题,但苦于Mysql自身没有提供直接的工具。 安装7z的目的主要是用于对数据库备份后的文件的压缩和加密。如果不需要也可以跳过此步骤…

    Linux 2023年5月27日
    073
  • Linux 下安装 node.js

    这里介绍两种安装方式: 编译安装和使用编译后的安装包安装。 安装目录: /usr/local 一、使用编译安装包安装 1、进入安装目录: 2、下载安装包: 3、解压: 4、进入解压…

    Linux 2023年6月13日
    095
  • 编写一个简单的linux kernel rootkit

    一、前言 linux kernel rootkit跟普通的应用层rootkit个人感觉不大,个人感觉区别在于一个运行在用户空间中,一个运行在内核空间中;另一个则是编写时调用的API…

    Linux 2023年6月8日
    0108
  • Red Hat Enterprise Linux (RHEL) 8.5 发布(含下载)

    2021 年 11 月 10 日,红帽企业 Linux (RHEL) 8.5 现已正式发布 (GA),并带来了新功能和改进,以帮助简化部署、优化性能并帮助降低环境中的风险。无论您的…

    Linux 2023年5月27日
    0111
  • Java50个关键字之final

    1)final用于声明属性、方法和类,分别表示属性不可变、方法不可覆盖、类不可被继承(不能再派生出新的子类)。 final属性:被final修饰的变量不可变,由于不可变有两重含义,…

    Linux 2023年6月7日
    095
  • 数字数组

    3、【剑指Offer学习】【面试题03:找出数组中重复的数字】 4、【剑指Offer学习】【面试题04:二维数组中的查找】 11、【剑指Offer学习】【面试题11:旋转数组的最小…

    Linux 2023年6月13日
    0123
  • 实验3: OpenFlow协议分析实战

    实验三: OpenFlow协议分析实战 (一) 基本要求 1.搭建拓扑、IP配置、主机通信 1.1 搭建拓扑 1.2 IP配置 1.3 代码 #!/usr/bin/env pyth…

    Linux 2023年6月7日
    0100
  • Docker(47)- 一键安装 docker 的 shell 脚本

    背景 有多个自己的云服务器,都要安装 docker,所以就尝试将安装的步骤转换成 shell 脚本,回头可以一键执行~ 创建 shell 脚本 touch install_dock…

    Linux 2023年5月28日
    088
  • Kubenertes-实战入门

    实战入门 Namespace Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现 多套环境的资源隔离。 默认情况下,kubernetes集群中…

    Linux 2023年6月13日
    093
  • MySQL安装卸载、idea中Database的使用、常用的sql语句

    MySQL安装卸载 MySQL安装 在下面的 资源链接中下载MySQL软件 压缩包(绿色版)…

    Linux 2023年6月6日
    0129
  • 分而治之-快排

    分而治之:把复杂的算法问题按一定的”分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出个部分的解,把各部分的解组成整个问题的解。 &#x…

    Linux 2023年6月7日
    098
  • 1. 斐波那契数 爬楼梯 使用最少花费爬楼梯

    版本一:一维数组记录型 class Solution { public: int fib(int n) { if(n dp(n+1); dp[0] = 0; dp[1] = 1; …

    Linux 2023年6月6日
    0100
  • PXE(cobbler)搭建,自动系统安装

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0115
  • Django_渲染详解

    Django_render 模板语法 模板引擎是一种可以让开发者把服务端数据填充到html网页中完成渲染效果的技术。它实现了把前端代码和服务端代码分离的作用,让项目中的业务逻辑代码…

    Linux 2023年6月7日
    0131
  • Redis

    Redis原创笑笑师弟 最后发布于2018-12-21 14:17:59 阅读数 1780 收藏展开目录 redis简介 redis功能 redis学习步骤 windows系统下的…

    Linux 2023年5月28日
    0104
  • Dockerfile 构建镜像

    从 Dockerfile 构建镜像涉及三个步骤 创建工作目录 编写 Dockerfile 规格 使用 docker build 命令构建镜像 1. 创建工作目录 这个根据应用实际情…

    Linux 2023年6月6日
    0110
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球