Python 序列之列表的独有的基本操作
来源:互联网 发布:泸州古蔺网络问政平台 编辑:程序博客网 时间:2024/06/05 12:24
列表是最常用的Python数据类型,它以作为一个方括号内的逗号分隔值出现。列表不同于元组(另有篇幅单独介绍元组)和字符串的最大不同就是列表是可变的,起元素是可修改的。列表举例:a=['a',1,['b']],b=[[['a','b'],'c'],1,''abc]
列表独有的基本操作有:元素赋值、删除元素和分片赋值。(备注:该操作是直接改变了原有列表的内容的)
1.元素赋值,直接改变列表中某个元素的值。
>>> x=[1,2,'a']>>> x[0]=['a'] #对第一个元素赋值>>> x[['a'], 2, 'a']>>> x[-1]='b' #对最后一个元素赋值>>> x[['a'], 2, 'b']>>> x[10]='d' #不能对不存在的元素赋值Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: list assignment index out of range2.删除元素,用del语句实现
>>> x #列表x的元素值有3个,长度也为3[['a'], 2, 'b']>>> len(x) 3>>> del x[1] #删除列表x的第二个元素>>> x[['a'], 'b']>>> len(x) #删除第二个元素后,长度也跟着变化了2>>> del x[10] #不能删除不存在的原始Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: list assignment index out of range>>> >>>x=['a', 2, 'a', 4, 'a', 8, 'a', 7, 'a', 6, 'a', 5]>>> del x[1:8:2] #对于列表第二个元素到第八个元素(两头包含),每隔一个元素删除一个>>> x['a', 'a', 'a', 'a', 'a', 6, 'a', 5]3.分片赋值,分片赋值这个功能比较强大,可以实现增、删、改的所有功能。
分片赋值可以一次为多个元素赋值
>>> x=[1,2,3,4]>>> x[2:]=[5,6]>>> x[1, 2, 5, 6]分片赋值可使用不等长的分片替换原有分片,当右边长度大于左边时,多余的元素会采取插入新值的方式;当右边长度小于左边长度时,原列表后面的元素都会被删除;当两边长度相等时,采用的是原位替换
>>> x=[1,2,3,4]>>> y=[5,6,7,8]>>> x[2:]=y[1:] #左边2个元素,右边3个元素,多余的最后1个元素插入到了列表x的最后>>> x[1, 2, 6, 7, 8]>>> z=['a','b','c']>>> x[0:1]=z #左边1个元素,右边3个元素,多余的2个元素按顺序插入到了列表x[0]的后面>>> x['a', 'b', 'c', 2, 6, 7, 8]>>> x[-4:]=z #左边4个元素,右边3个元素,原列表x[-2]之后元素被删除>>> x ['a', 'b', 'c', 'a', 'b', 'c']>>> x[1:]=z[0:1] #左边5个元素,右边1个元素,原列表x[1]之后元素被删除>>> x['a', 'a']>>> x=[1,2,3,4]>>> x[1:3]=[5,6] #两边元素个数相等,按顺序原位替换元素值>>> x[1, 5, 6, 4]按照上述方法继续延伸,可以在列表的任意位置插入任意个元素,只需要让左边元素个数为0即可
>>> x=[1,2,3,4]>>> x[1:1]=[5,5,5] #在列表第一个之前插入了3个元素>>> x[1, 5, 5, 5, 2, 3, 4]>>> x[-2:0]=[6,6,6] #在列表倒数第二个之前插入了3个元素>>> x[1, 5, 5, 5, 2, 6, 6, 6, 3, 4]按照上述方法继续延伸,可以删除列表中任意位置的元素
>>> x=[1,2,2,3,4,5,6,7,8,9]>>> x[1:2]=[] #删除某一个元素>>> x[1, 2, 3, 4, 5, 6, 7, 8, 9]>>> x[1:5]=[] #删除某一个分片的元素>>> x[1, 6, 7, 8, 9]>>> x[1:5:2]=[] #使用步长不为1时,左右两边的长度必须相同,否则报错Traceback (most recent call last): File "<stdin>", line 1, in <module>ValueError: attempt to assign sequence of size 0 to extended slice of size 2用步长不为1来操作列表
>>> x=[1,2,3,4]*3>>> x[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]>>> x[::2]='a'*(len(x)/2) #把列表x的奇数位元素设置为字符'a'>>> x['a', 2, 'a', 4, 'a', 2, 'a', 4, 'a', 2, 'a', 4]>>> x[-1:-8:-2]=[5,6,7,8] #按倒序把列表倒数第一位和第七位之间的4个奇数位设置为数字5,6,7,8 (注意赋值顺序)>>> x['a', 2, 'a', 4, 'a', 8, 'a', 7, 'a', 6, 'a', 5]
阅读全文
0 0
- Python 序列之列表的独有的基本操作
- python的序列之列表
- python(一)列表与元组之序列基本操作
- python基础知识之改变列表的基本操作
- Python列表序列及字典的操作
- 列表的基本操作 of Python
- Python中字符串、列表的基本操作
- python中列表的基本操作
- Android独有的序列化Parcelable
- Python 序列之列表的操作方法
- 列表的基本操作
- python学习笔记5—序列与列表的操作
- python的基本操作(列表,元组)
- Python列表、字典、元组的一些基本操作
- python中列表(list)的基本操作
- python中的列表,元祖,字典,等基本数据类型的操作
- python列表基本操作
- python序列之列表对象的常用方法
- Jmock 原理简单说明
- 【Unity Shader入门精要】— 中级篇
- 小厚的三角形(SDUT 3559)
- 深入解析Linux 常用命令--ls
- c++:继承相关的要点热点,以及菱形继承的底层实现
- Python 序列之列表的独有的基本操作
- layer.msg弹出会关闭layer.open弹出的窗口问题
- maven学习笔记1
- HTML学习总结
- Python笔记4:控制流
- linux一些稍微高级的命令
- C++宏总结
- hadoop Shell命令详解
- 51nod 1398 等公交【概率DP】