Python基础知识学习-Day5

for 循环和可迭代对象遍历

遍历一个元组或列表:for x in (20, 30, 40) print(x*3)最后得到的结果是60、90、120

可迭代对象

Python 包含以下几种可迭代对象: 1. 序列。包含:字符串、列表、元组 2. 字典 3. 迭代器对象(iterator) 4. 生成器函数(generator) 5. 文件对象

遍历字典:例如d是一个字典

                1、 for x in d: #遍历字典所有的 key

                2、for x in d.keys():#遍历字典所有的 key

                3、for x in d.values():#遍历字典所有的 value

                4、for x in d.items():#遍历字典所有的"键值对"

break 语句

break 语句可用于 while 和 for 循环,用来结束整个循环。当有嵌套循环时,break 语句只 能跳出最近一层的循环。

continue 语句

continue 语句用于结束本次循环,继续下一次。多个循环嵌套时,continue 也是应用于最 近的一层循环。

循环代码优化

虽然计算机越来越快,空间也越来越大,我们仍然要在性能问题上“斤斤计较”。编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:

1. 尽量减少循环内部不必要的计算

2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。

3. 局部变量查询较快,尽量使用局部变量

使用 zip()并行迭代

我们可以通过 zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。

names = ("AA","BB","CC","DD")
ages = (18,16,20,25)
jobs = ("老师","程序员","公务员")
for name,age,job in zip(names,ages,jobs):
print("{0}--{1}--{2}".format(name,age,job))

推导式创建序列

1、[表达式 for item in 可迭代对象 ] 或者:{表达式 for item in 可迭代对象 if 条件判断}

cells = [(row,col) for row in range(1,10) for col in range(1,10)]  #可以使用两个循环

2、字典的推导式生成字典对象,格式如下: {key_expression : value_expression for 表达式 in 可迭代对象}

统计文本中字符出现的次数:

my_text = ' i love you, i love sxt, i love gaoqi'
char_count = {c:my_text.count(c) for c in my_text}
char_count
{' ': 9, 'i': 4, 'l': 3, 'o': 5, 'v': 3, 'e': 3, 'y': 1, 'u': 1, ',': 2, 's': 1, 'x': 1, 't': 1, 'g': 1, 'a': 

不用推导式来计算字符出现的次数:

my_text = ' i love you, i love sxt, i love gaoqi'
y = {}
for s in my_text:
    e = {s:my.count(s)}
    y.update(e)
print(y)

3、集合推导式生成集合,和列表推导式的语法格式类似:{表达式 for item in 可迭代对象 } 或者:{表达式 for item in 可迭代对象 if 条件判断}

4、生成器推导式(生成元组):(x for x in range(1,100),最后提示的是“一个生成器对象”。显然,元组是没有推导式的。一个生成器只能运行一次。第一次迭代可以得到数据,第二次迭代发现数据已经没有了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值