使用索引获取列表的元素(随机读取)

列表元素支持用索引访问,正向索引从0开始

colors=["red","blue","green"]

colors[0] =="red"

colors[1]=="blue"

同时,也可以使用负向索引(python中有序序列都支持负向索引)

colors[-1]=="green"

列表的切片操作

切片操作不是列表特有的,python中的有序序列都支持切片,如字符串,元组。

切片的返回结果类型和切片对象类型一致,返回的是切片对象的子序列,如:对一个列表切片返回一个列表,

字符串切片返回字符串。

切片生成的子序列元素是源版的拷贝。因此切片是一种浅拷贝。

li=["A","B","C","D"]

格式:  li[start : end : step]

start是切片起点索引,end是切片终点索引,但切片结果不包括终点索引的值。step是步长默认是1。

t=li[0:3]        ["A","B","C"]        #起点的0索引可以省略,t=li[:3]

t=li[2: ]        ["C","D"]           #省略end,则切到末尾

t=li[1:3]        ["B","C"]

t=li[0:4:2]       ["A","C"]       #从li[0]到li[3],设定步长为2。

如何确定start和end,他们是什么关系?

在step的符号一定的情况下,start和end可以混合使用正向和反向索引,无论怎样,你都要保证

start和end之间有和step方向一致元素 间隔,否则会切出空列表

t=li[0:2]

t=li[0:-2]

t=li[-4:-2]

t=li[-4:2]

上面的结果都是一样的;t为["A","B"]

t=li[-1:-3:-1]

t=li[-1:1:-1]

t=li[3:1:-1]

t=li[3:-3:-1]

上面的结果都是一样的;t为["D","C"]

t=li[-1:-3]

t=li[-1:1]

t=li[3:1]

t=li[3:-3]

都切出空列表

同时,step的正负决定了切片结果的元素采集的先后

省略start  和 end表示以原列表全部为目标

t=li[::-1]     t--->["C","B","A"]     #反向切,切出全部

t=li[:]        t--->["A","B","C","D"]   #正向切全部

python之列表切片(slice)的更多相关文章

  1. 在python&numpy中切片(slice)

     在python&numpy中切片(slice) 上文说到了,词频的统计在数据挖掘中使用的频率很高,而切片的操作同样是如此.在从文本文件或数据库中读取数据后,需要对数据进行预处理的操作.此时就 ...

  2. Python 之列表切片的四大常用操作

    最近在爬一个网站的文档的时候,老师要求把一段文字切割开来,根据中间的文本分成两段 故学习了一段时间的切片操作,现把学习成果po上来与大家分享 1.何为切片? 列表的切片就是处理列表中的部分元素,是把整 ...

  3. 【转】Python高级特性——切片(Slice)

    摘录廖雪峰网站 定义一个list: 1 L = ['haha','xixi','hehe','heihei','gaga'] 取其前三个元素: >>> L[0],L[1],L[2] ...

  4. python:列表切片知识的总结

    列表的切片操作时对其中的单个或者多个索引对应元素的操作,具有如下特点: ①.切片区间是左闭右开区间 ②.切片的下标可以表示负数,-1表示倒数第一个数,-2表示倒数第二个数 ③.默认步长是1,可增加第三 ...

  5. Day7 python高级特性-- 切片 Slice

    先举一个例子,取list或tuple中的某几个元素:     1.取 ['a','b','c','d','e','f'] 第1.2.5.6个元素:        >>> a = [' ...

  6. Python高级教程-切片

    Python中的切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['A','B','C','D'] 对经常取指定索引范围的操作, ...

  7. Python高级特性(切片,迭代,列表生成式,生成器,迭代器)

    掌握了Python的数据类型.语句和函数,基本上就可以编写出很多有用的程序了. 比如构造一个1, 3, 5, 7, ..., 99的列表,可以通过循环实现: L = [] n = 1 while n ...

  8. python 列表切片

    列表切片是python语言独有的特征,大大方便了我们的编码. 首先,在介绍切片之前,必须要知道一个知识,就是python列表的读写,下标可以使用负数. insert,get,set 操作均可传入负数下 ...

  9. python 输出所有大小写字母, range()以及列表切片

    所以在写的时候,只要把它们的ASCII列出,并转化成字符型chr 即可. print [chr(i) for i in range(65,91)]#所有大写字母 print [chr(i) for i ...

随机推荐

  1. sql按天分组

    sql按天分组,这都不会 晕!!!!!!! ) ;

  2. wait、notify、notifyAll和Condition

    wait().notify()和notifyAll()是基于synchronized Condition是基于Lock的. Condition是在java 1.5中才出现的,它用来替代传统的Objec ...

  3. C# params参数的应用

    为了将方法声明为可以接受可变数量参数的方法,我们可以使用params关键字来声明数组,如下所示: public static Int32Add(params Int32[] values) { Int ...

  4. ZOJ 3913 Bob wants to pour water ZOJ Monthly, October 2015 - H

    Bob wants to pour water Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge There i ...

  5. BZOJ3067 : Hyperdrome

    设f[i][j]表示前i个字母中字母j出现的次数对2取模的结果. 若[l,r]经过重组可以形成回文串,则需满足f[l-1][j]与f[r][j]至多有1位不同. 将f[i]用一个long long表示 ...

  6. BZOJ3745 : [Coci2014]Norma

    考虑枚举右端点,用线段树维护[i,nowr]的答案. 当右端点向右延伸时,需要知道它前面第一个比它大/小的数的位置,这里面的最值将发生改变,这个使用单调队列求出,然后将所有的l都加1. 注意常数优化. ...

  7. POJ 1064 (二分)

    题目链接: http://poj.org/problem?id=1064 题目大意:一堆棍子可以截取,问要求最后给出K根等长棍子,求每根棍子的最大长度.保留2位小数.如果小于0.01,则输出0.00 ...

  8. linux下C语言获取微秒级时间

    使用C语言在linux环境下获得微秒级时间 1.数据结构 int gettimeofday(struct timeval*tv, struct timezone *tz); 其参数tv是保存获取时间结 ...

  9. MIB-II

    . 1.3.6.1.2.1

  10. hdu

    这道题因为某些位置要重复走,所以不能用标记的方法,但是为了提高效率,可以采用time[]数组和step[]数组来剪枝,很容易想到,当你从一条路劲走到(x,y)处的时间和步骤 比从另一条路劲走到(x,y ...