数据结构:

  python数据结构共包含四大类:

  • 列表

     列表是可变元素,支持增删改查操作

  • 字典

    字典是遍历,key:value 格式.

  • 元组

    元组数据不可变元素,仅仅有两个操作 index, count

  • 集合

    集合的增删,创建集合{1, 2, 3}, set(),集合的集合操作.

控制流语句:

  • if 语句
  • if else 语句
  • if elif else语句
  • 永远只有一个分支被执行
  • while语句
  • for in 语句
  • break语句
  • continue语句
  • else语句

列表解析

  列表解析是python重要的语法糖,速度比for in迭代快,推荐使用

  基本语法

ret = [expression for item in iterator]

   等价于:  

ret = []
for item in iterator:
ret.append(expression)

  实例:

# 列表解析形式

In [1]: lst = list(range(1,11))

In [2]: lst
Out[2]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] In [3]: [x ** 2 for x in lst]
Out[3]: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] # for循环方式
In [6]: lst
Out[6]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] In [7]: ret=[] In [8]: for i in lst:
...: ret.append(i ** 2) In [10]: print(ret)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

多个列表情况

In [32]: [(x, y) for x in list1 for y in listb]
Out[32]:
[(1, 'a'),
(1, 'b'),
(1, 'c'),
(2, 'a'),
(2, 'b'),
(2, 'c'),
(3, 'a'),
(3, 'b'),
(3, 'c')]

含有条件的列表解析

基本语法:

ret = [expression for item in iterator if X if Y]

等同于

ret = []
for item in iterator:
if X and Y:
ret.append(expression)

实例:

In [34]: list1 = [2, 3, 4, 5, 6, 7]

In [35]: [x ** 2 for x in list1 if x<6 ]
Out[35]: [4, 9, 16, 25]

字典解析

  基本语法:

ret = {exprK:exprV for item in iterator}

   等同于

ret = dict()
for item in iterator:
ret.update({exprK: exprV})

字典解析实例:

  生成字典的方式:

In [26]: lista
Out[26]: ['a', 'b', 'c', 'd', 'e'] In [27]: listb
Out[27]: [1, 2, 3, 4, 5] In [28]: {k:v for k in lista for v in listb}
Out[28]: {'a': 5, 'b': 5, 'c': 5, 'd': 5, 'e': 5} In [29]: {k:v for k, v in [('a', 1), ('b', 2)]}
Out[29]: {'a': 1, 'b': 2}

集合解析:

# 生成集合
In [36]: {x + 1 for x in range(10)}
Out[36]: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} #集合解析 In [38]: {x+1 for x in [2, 2, 2, 3]}
Out[38]: {3, 4}

  

最新文章

  1. HW2016_字符串_STL_DP
  2. symfony2 路由工作原理及配置
  3. log4j打印mybatis sql语句
  4. python numpy array 的一些问题
  5. asp.net获取select值的方法
  6. Java Memory Basic
  7. SAP增强总结-第二代增强(SMOD、CMOD)【转载】
  8. pc telnet 登录 android 系统
  9. .net程序调用检测和性能分析工具——DotTrace
  10. 通过jdbc完成单表的curd操作以及对JDBCUtils的封装
  11. Oracle DB Day03(SQL)
  12. laravel简书(2)
  13. C++连接mysql及遇到的相关问题
  14. IIS 301重定向 报错 地址后面有eurl.axd
  15. Redis 实现队列http://igeekbar.com/igeekbar/post/436.htm
  16. CSS选择器分类总结
  17. Leetcode题库——23.合并k个排序链表
  18. PHP面向对象详解:继承、封装与多态
  19. Yocto使用小技巧
  20. rinted端口转发工具

热门文章

  1. Nginx+Php Windows部署
  2. C++ 重载、重写、重定义
  3. BZOJ2454 : TopCoder SRM 463 RabbitPuzzle
  4. 解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题
  5. MERGE 用法
  6. css3 转换transfrom 过渡transition 和两个@
  7. PLSQL_基础系列08_操作符标LPAD / TRUNC / DECODE / TRIM / INSTR(案例)
  8. Android图片圆角效果
  9. (转)RabbitMQ消息队列(五):Routing 消息路由
  10. CommandLine 和 Options
  11. 1523. K-inversions(K逆序对)
  12. 【POJ2887】【块状链表】Big String
  13. Android扫描二维码 实现 登录网页
  14. C语言学习笔记---谭浩强
  15. php 代码重用
  16. 数据库CAST()函数和CONVERT()函数比较
  17. 最好用的css辅助工具——SASS&amp;LESS
  18. Highway LSTM 学习笔记
  19. 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(三)流式播放Live HLS视频
  20. Ubunttu16.04升级/更新git版本(亲测有效)