参考:

Note

1.掌握了Python的基础语法之后,就可以写出很多很有用的程序了,比如打印1-90的奇数:

#!/usr/bin/env python3

L = []

n = 1

while n <= 90 :
L.append(n)
n = n + 2 print(L)
sh-3.2# ./easyprogram.py
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89]

但是在Python中,代码不是越多越好,而是越少越好。代码不是越复杂越好,而是越简单越好。

本章介绍的高级特性,目的就是缩短代码,一行能做到的决不用五行,代码越少,开发效率越高。

2.切片(slice) 是Python的一种高级特性,主要用于Python中list和tuple的截取。

之前截取list中前三个元素的方法:

L = ['Chen', 20, '952693358', 'cnblogs', 'Github']

newL1 = [L[0], L[1], L[2]]

print(newL1)
newL2 = []

for i in range(3) :
newL2.append(L[i]) print(newL2)

output:

['Chen', 20, '952693358']

使用切片截取的方法:

slice1 = L[0:3]	# L[:3]

就可以很轻松的得到前三个元素。L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。

其他用法如下:

(1)从索引i开始取a个元素:L[i:i+a]

eg.

slice1 = L[1:3]

output:

[20, '952693358']

(2)倒数切片,利用Python支持负数索引的特点:L[-i:-j] => 取倒数第i个到倒数第j-1个元素。

eg.

slice1 = L[-3:]    # ie.取后三个

print(slice1)

slice1 = L[-3:-1]  # ie.取倒数第三个到倒数第二个

print(slice1)

注意,最后一个元素的索引是-1.

output:

['952693358', 'cnblogs', 'Github']
['952693358', 'cnblogs']

3.demo

创建一个含整数0->99的list:

#!/usr/bin/env python3

L = []

for i in range(100) :
L.append(i) print(L)
sh-3.2# ./slice2.py
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

a.取前十个数:

a = L[0:10] # L[:10]

print(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

b.后10个数:

b = L[-10:] 

print(b)
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

c.前11-20个数:

c = L[10:20]

print(c)
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

d.前10个数,每两个取一个

d = L[:10:2] # 0 2 4 ...

print(d)

每两个取一个,ie.元素之间间距是n-1(L[::n])。

[0, 2, 4, 6, 8]

e.所有数,每5个取一个:

e = L[::5] # 0 5 10 15 ...

print(e)
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

4.tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple。

5.字符串也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:

strs = 'WhenProgrammingFeelingHappy'

strs1 = strs[:15]

print(strs1)

strs2 = strs[-12:]

print(strs2)
WhenProgramming

FeelingHappy

2017/2/4

最新文章

  1. Win10 VC++6 无法启动此程序,因为计算机中丢失mfc42d.dll 需要提升
  2. webpack的几个使用方法
  3. Perl爬取江西失信执行
  4. WebRTC之带宽控制部分学习(1) ------基本demo的介绍
  5. 黑马程序员——JAVA基础之IO流缓冲区,转换流,字节流
  6. [Effective JavaScript 笔记]第46条:使用数组而不要使用字典来存储有序集合
  7. Android中使用SurfaceView+MediaPlayer+自定义的MediaController实现自定义的视屏播放器
  8. jQuery中易混淆知识点总结(持续更新)
  9. PAT1056:Mice and Rice
  10. Python算法与数据结构--求所有子数组的和的最大值
  11. 机器学习基石12-Nonlinear Transformation
  12. 一个ner的bug
  13. 项目(二)DNS解析——配置域名服务器
  14. webapi 自定义缓存实现
  15. JsTree使用一例
  16. Texture::setUnRefImageDataAfterApply
  17. 10.10xadmin
  18. C++的成员初始化列表和构造函数体(以前未知)
  19. python的ConfigParser模块
  20. SQL查询遍历数据方法一 [ 临时表 + While循环]

热门文章

  1. 【转】dd命令详解及利用dd测试磁盘性能
  2. 【非root用户】安装【python,pip,package】
  3. 发现一个小技巧:火狐浏览器对phpmyadmin支持更友好
  4. spring MVC学习(三)
  5. Windows常见宏的使用
  6. git 更新某个文件
  7. 2018秦皇岛ccpc-camp Steins;Gate (原根+FFT)
  8. SHUOJ - 算法题1 矩阵连乘问题(区间dp)
  9. 记一次ZOOKEEPER集群超时问题分析
  10. 【android】使用RecyclerView和CardView,实现知乎日报精致布局