切片

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

>>> L[0:3]    #取前3个元素

>>> L[:3]

>>> L[1:3]

>>> L[:]

>>> L[::2]   #第三个参数表示每2个元素取一个元素,也就是隔一个取一个 ['Adam','Bart']

>>> range(1, 101)    #创建一个数列[1, 2, 3, ..., 100]

>>> L[-2:]    #['Bart', 'Paul']

>>> L[:-2]    #['Adam', 'Lisa']

>>> L[-4:-1:2]    # ['Adam','Bart']

>>> 'ABCDEFG'[:3]    #'ABC'

>>> 'ABCDEFG'[-3:]    #'EFG'

>>> 'ABCDEFG'[::2]    #'ACEG'

迭代

Python的for循环可以作用在任何可迭代对象上。

迭代操作就是对于一个集合,依次取出集合的每一个元素。

1 有序集合:list  tuple  str  unicode

2 无序集合:set

3 无序key-value对:dict

在Python中,迭代取出的元素的本身,而不是元素的索引。

索引迭代:

使用enumerate()函数

L = ['Adam', 'Lisa', 'Bart', 'Paul']

for index, name in enumerate(L)

print index, '-', name

实际上,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

zip()函数可以把两个list变成一个list。

>>> zip([10, 20, 30], ['A', 'B', 'C'])    #[(10, 'A'), (20, 'B'), (30, 'C')]

对dict的迭代:

1、直接迭代,每次拿到dict的一个key;

2、调用values()方法,得到dict的values的list;itervalues()方法与values()方法的效果完全一样。

values()方法实际把一个dict转换成包含value的list;

itervalues()方法在迭代过程中依次从dict中取出value。

后者比前者省內存。

同時对key和value进行迭代:

items()方法和iteritems()方法

for key, value in d.items():

print key, ':', value

列表生成式

>>> range(1, 11)    #[1, 2, 3, ..., 10]

>>> [x*x for x in range(1, 11)]    #[1, 4, 9, ..., 100]

>>> [x*x for x in range(1, 11) if x%2 == 0]

>>> isinstance(x, str)    #判断x是否为字符串,字符串的upper()方法可以返回大写

>>> [m + n for m in 'ABC' for n in '123']    #['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

05 切片、迭代、列表生成相关推荐

  1. python用函数对列表删除_关于python:如何使用range()函数从列表中删除项目时迭代列表?...

    本问题已经有最佳答案,请猛点这里访问. 这是我在学习Python编程时遇到的最常见的问题.问题是,当我尝试使用"range()"函数迭代列表时,检查列表中的给定项是否满足给定条件, ...

  2. 210511阶段四 切片 迭代 生成器

    目录 一.学习的知识点 用户自定义函数 切片 迭代 生成器 生成器 yiled 二.上课没有听懂或者没有理解的地方 三.当天学习的收获 一.学习的知识点 用户自定义函数 # 无参函数 def func ...

  3. python生成元组_python 列表生成、元组、字典

    *列表生成 1语法: range(startistopstep)2.7版本 list(range(startistopstep))3.5 2.通过循环生成列表: [x for x in range(1 ...

  4. python入门基础篇(三)序列切片,列表、元组推导式

    前面介绍了列表与元组,在这里补充一下关于列表.元组推导式,以及序列的切片.切片不仅仅用于列表元组,还可以用于字符串等等 文章目录 一.序列切片 二.列表推导式 1.根据列表生成指定需求的列表 2.生成 ...

  5. 微课|中学生可以这样学Python(5.8.1节):使用切片访问列表元素

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第5章  Python序列及应用 5.8.1  使用切片获取列表.元组.字符串中的部分元素 京东购 ...

  6. 微课|中学生可以这样学Python(5.8.2节):使用切片修改列表

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第5章  Python序列及应用 5.8.2  使用切片对列表进行插入.删除.修改和替换操作 京东 ...

  7. Python(IT峰)笔记06-数据类型详解:列表,列表的定义,列表的基本运算,列表中的切片,列表中的相关函数,浅拷贝,深拷贝,列表推导式

    1.列表的定义 中括号进行定义 list函数定义 使用逗号分割 列表中的元素可以是任意类型,尽管这样很少用 lists=list() lists.append('zhangsan') lists.ap ...

  8. python最新版本 效率_Python:迭代列表与dict项目效率

    这取决于您使用的是哪个版本的Python.在Python 2中,some_dict.items()创建一个新列表,这会占用一些额外的时间并占用额外的内存.另一方面,一旦创建了列表,它就是一个列表,因此 ...

  9. Java中迭代列表中数据时几种循环写法的效率比较

    Java中经常会用到迭代列表数据的情况,本文针对几种常用的写法进行效率比较.虽然网上已经有了类似的文章,但是对他们的结论并不认同. 常见的实现方法: 1.for循环: [java] view plai ...

  10. 迭代列表不要For循环,这是Python列表推导式最基本的概念

    如果你还在使用 For 循环迭代列表,那么你需要了解了解列表推导式,看看它的基本概念都是什么. 列表解析式(List comprehension)或者称为列表推导式,是 Python 中非常强大和优雅 ...

最新文章

  1. wpf 绑定数据无法更新ui控件可能存在的问题
  2. 字节跳动高频算法题TOP100
  3. Java中接口的多继承
  4. 《ArcGIS Runtime SDK for .Net开发笔记》--介绍与环境搭建
  5. keil c语言中断怎么写,如何利用keil C实现单片机中断功能
  6. ASP.NET Web API 入门 (API接口、寄宿方式、HttpClient调用)
  7. 两种消息模型: 点对点(queue)发布/订阅(topic)
  8. python 3模块导入(import)问题一则
  9. Ctrl+Shift+F 输入法变成繁体 输入法简体繁体切换
  10. 官方水晶报表 .NET 应用程序实例下载 (Visual Basic .NET)
  11. 数据质量检查【整理】
  12. WPF基础篇 作者:IT168 静水流深 2008-01-02
  13. 用前端代码智能识别身份证的头像
  14. 说透APP稳定性测试
  15. Android 使用Arcore 实现多点测距
  16. SQLyog到期了处理
  17. 1.2医学统计学的作用
  18. L*MM 文件管理器小结
  19. Java在ACM竞赛中的技巧(蓝桥杯备赛总结)
  20. [人工智能-深度学习-41]:开发环境 - GPU进行训练安装与搭建(Pytroch、TensorFlow、Nvidia CUDA)详细过程

热门文章

  1. 《MySQL——选错索引,该如何做》
  2. 智能车复工日记【N】:图像处理——环岛debug记录(持续更新)
  3. doublevalue_Java Double类doubleValue()方法与示例
  4. 汇编语言-013(DAS 、DAA与DAS、QWORD类型用SBB借位减法、编写指令将AX符号扩展到EAX,不能使用CWD、用SHR和条件判断指令将AL循环右移一位、SHLD、压缩十进制转换)
  5. win7 php 上传文件,在LNMP原来的基础上,win7环境下如何上传PHP文件到Linux环境下...
  6. 451. 根据字符出现频率排序golang
  7. c++实现字符串类的封装
  8. va_list和vsnprintf、getopt
  9. Linux socket编程,对套接字进行封装
  10. enum in c language