博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础(三)
阅读量:4928 次
发布时间:2019-06-11

本文共 1642 字,大约阅读时间需要 5 分钟。

切片

只用一个 : ,表示从头到尾:

>>> L[:]['Adam', 'Lisa', 'Bart', 'Paul']

切片操作还可以指定第三个参数:第三个参数表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个。

把list换成tuple,切片操作完全相同,只是切片的结果也变成了tuple。

迭代

迭代操作就是对于一个集合,无论该集合是有序还是无序,我们用 for 循环总是可以依次取出集合的每一个元素。

*注意: 集合是指包含一组元素的数据结构,我们已经介绍的包括:

1 有序集合:list,tuple,str和unicode;

2 无序集合:set;

3 无序集合并且具有 key-value 对:dict;

例题:请用for循环迭代数列 1-100 并打印出7的倍数。

for i in range(1, 100)[6::7]:    print i

Python中,迭代永远是取出元素本身,而非元素的索引。

想要取出索引要用enumerate() 函数

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> for index, name in enumerate(L):...     print index, '-', name... 0 - Adam1 - Lisa2 - Bart3 - Paul

enumerate() 函数把:

['Adam', 'Lisa', 'Bart', 'Paul']
变成了类似:
[(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]
因此,迭代的每一个元素实际上是一个tuple:

for t in enumerate(L):    index = t[0]    name = t[1]    print index, '-', name

索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身。

  1. values() 方法实际上把一个 dict 转换成了包含 value 的list。

  2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。

  3. 打印 itervalues() 发现它返回一个 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。

如果一个对象说自己可迭代,那我们就直接用 for 循环去迭代它,可见,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求。

利用 3 层for循环的列表生成式,找出对称的 3 位数。例如,121 就是对称数,因为从右到左倒过来还是 121。

注意三种方法的思想

L=[]for x in range(1,10):    for y in range(10):        for z in range(1,10):            if x==z :                L.append(100*x+10*y+z)print Lprint [100 * x + 10 * y + z for x in range(1, 10) for y in range(10) for z in range(10) if x==z]print [x for x in range(100,1000) if str(x)[0]==str(x)[-1]]

转载于:https://www.cnblogs.com/ulrica/p/8934071.html

你可能感兴趣的文章
go学习笔记-类型转换(Type Conversion)
查看>>
[shell编程]一个简单的脚本
查看>>
js浮点数运算需要注意的问题
查看>>
锋利的jQuery读书笔记---jQuery中Ajax--load方法
查看>>
@Controller和@RestController的区别(转)
查看>>
day029socketserver模块实现并发,线程、 ftp上传或下载,打印进度条
查看>>
专注就要勇于对其它1000个好主意说“不”
查看>>
nfc相关
查看>>
Python爬虫基础(四)Requests库的使用
查看>>
linux ls和 ll 命令
查看>>
Python 类型强制转换
查看>>
Android中的常见时区
查看>>
BlockingQueue深入分析
查看>>
Oracle一次可以查询多个表的结果的方法
查看>>
JavaScript事件对象与事件的委托
查看>>
NHibernate.3.0.Cookbook第三章第10节的翻译
查看>>
两个数据库比较 对比视图存储过程及表结构差异增加外键差异
查看>>
zend framwork黑箱测试
查看>>
51nod 1693 水群(神奇的最短路!)
查看>>
ajax提交表单+前端验证小示例
查看>>