python 列表切片
这篇内容我们通过简单的示例来学习如何处理列表的一部分,这在python中称之为切片。
下面我们通过获取一个成员列表中指定元素的实例来说明如何使用。
#group members
groups = ["张三","李四","王五","赵六","老七"];#print the members range of 0-2
print(groups[0:3]);
在上述代码中,我们特别注意的是groups[0:3] 的写法,其中0:3分别代表的是从列表第一个元素开始,到第三个元素终止。这样的写法在前面大家也见过,如果没有印象的话,可以回想一下range函数的使用。
上述代码打印的也是一个列表,不过是group列表的子集,输出大家可以参考以下:
['张三', '李四', '王五']
当然了,大家可以指定任意范围的元素索引来提取我们想要的信息。
如果,我们没有指定第一个索引位置,会发生什么情况呢?
print(groups[:3]);
这样的python代码会输出什么内容呢?
['张三', '李四', '王五']
这是我想让大家注意的一点,如果没有指定第一个索引,python会默认从0开始处理列表,那么大家看到这里可能会想到,如果没有指定终止索引呢?
答案和你们想的一样,如果没有指定最后一个索引,python会从列表末尾终止。
print(groups[0:]);
输出:
['张三', '李四', '王五', '赵六', '老七']
那假如我们指定的列表索引超出了界限,python会如何处理呢?
假如有如下代码:
print(groups[0:10]);
会和我们预想的一样python给我们提示列表越界吗?
['张三', '李四', '王五', '赵六', '老七']
没有,python还是正常的打印了整个列表并没有提示有任何的错误。
前面学习过range函数,想必大家对下面的代码应该不陌生吧。
#print the members range of 0-2
print(groups[-3:]);
这行代码是从group列表的末尾第三个元素开始至列表末尾结束。这点大家想必很容易理解。大家只要记住:负数索引返回的的是距离列表末尾相应距离的元素。
输出:
['王五', '赵六', '老七']
至于如何遍历切片结果,这点参考前面学习过的for循环的使用,下面给一个简单的列子:
#group members
groups = ["张三","李四","王五","赵六","老七"];#print the members range of 0-2
for member in groups[0:3]:print("current member is:" + member);
输出:
current member is:张三
current member is:李四
current member is:王五
在很多情况下,在我们的程序中需要对列表进行复制然后创建一个全新的列表。
大家可能第一想到的是下面这种写法:
#group members
groups = ["张三","李四","王五","赵六","老七"];new_groups = groups;print("groups:");
print(groups);print("new groups:");
print(new_groups);
输出和大家预想的一样,两者的输出是相同的:
groups:
['张三', '李四', '王五', '赵六', '老七']
new groups:
['张三', '李四', '王五', '赵六', '老七']
那么,我们突然对new groups列表新增一个成员,两者的输出还会一致吗?
new_groups.append("老八");
好了,老八加入了这个成员俱乐部,那么原来的列表应该没有老八这个人吧,我们在打印一下这两个列表:
groups:
['张三', '李四', '王五', '赵六', '老七', '老八']
new groups:
['张三', '李四', '王五', '赵六', '老七', '老八']
咦,怎么两个列表都有老八呢?明明只会对新的列表增加了一个人,为什么会对原来的列表产生影响呢?
在python中这种赋值语法其实是将变量groups和new_groups 关联在了一起,两者都是指向了同一个列表。
那么该何如避免这个问题呢?
切片,上面提到了切片这个概念,通过切片产生了一个新的列表,这就相当于又重新创建了一个列表,这样通过使用切片进行赋值的列表就没有了关联关系,自然不会产生影响。
#group members
groups = ["张三","李四","王五","赵六","老七"];new_groups = groups[:];
new_groups.append("老八");print("groups:");
print(groups);print("new groups:");
print(new_groups);
输出:
groups:
['张三', '李四', '王五', '赵六', '老七']
new groups:
['张三', '李四', '王五', '赵六', '老七', '老八']
python 列表切片相关推荐
- python列表切片得到的是列表还是字符串_python中列表的切片问题 python arry怎么取列切片...
python 列表切片赋值 对列表切片进行赋值,解释器处理时是直接将序列中的内容赋值过去的 ,还切片赋值,得到的与原变量无关,是两个不同的对象:直接赋值,引用的是同一个对象. 请看下例 切片赋值. a ...
- python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解
python列表切片和嵌套列表取值操作详解 给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中, ...
- python列表切片图解_Python列表切片操作实例总结
本文实例讲述了Python列表切片操作.分享给大家供大家参考,具体如下: 切片指的是列表的一部分. 1 基本用法 指定第一个元素和最后一个元素的索引,即可创建切片 .Python 会在到达指定的第二个 ...
- Python 列表切片操作
Python列表切片 切片是Python序列的重要操作之一,适用于列表.元组.字符串.range对象等.可以用切片截取列表中任何部分来获得一个新的列表,也可以进行元素的增.删.改. 在Python中, ...
- python列表切片规则_Python 列表切片
想必很多人都使用过列表的切片,通过切片可以从列表中获取一个或多个元素,但你真的了解切片? 一.一般玩法 >>> name = ['a', 'b', 'c', 'd', 'e', 'f ...
- python 列表切片负值,详解Python 切片语法
Python的切片是特别常用的功能,主要用于对列表的元素取值.使用切片也会让你的代码显得特别Pythonic. 切片的主要声明如下,假设现在有一个list,命名为alist: alist = [0,1 ...
- Python 列表切片详解
一.列表切片 切指–将某些东西切成小块.列表切片是从原始列表中提取列表的一部分的过程.在列表切片中,我们将根据所需内容(如,从何处开始,结束以及增量进行切片)剪切列表. Python中符合序列的有序 ...
- python列表切片口诀-切片 - 廖雪峰的官方网站
取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack' ...
- python列表切片口诀-python学习之“切片操作从入门到精通”
在python学习开发的过程中,我们总是不断的要对List(列表),Tuple(元组)有取值操作:假如我们有一个列表List1现在想取出1其中的前5个元素,改怎么操作呢? 1 >>> ...
- python列表切片赋值_Python中对切片赋值原理分析
有这么个问题::t = [1, 2, 3] t[1:1] = [7] print t # 输出 [1, 7, 2, 3] 谁会对列表这么进行赋值呢?但是对于这个输出结果的原因确实值得去再了解下,今天 ...
最新文章
- python月薪是多少-2019年 Python就业市场行情好不好, 薪资多少?
- angular 与 highcharts 结合使用
- 文献管理工具mendeley登录问题
- hadoop安装与配置
- [jQuery] jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this
- web安全day44:进阶,使用Nmap+Wireshark理解端口扫描
- 光模块基础知识【快速入门】02
- 制作QQ微信支付宝三合一收款码
- Mac下安装git极简教程
- kubuntu16.04安装和卸载fcitx输入法
- 2011年MacAir更新系统
- 如何在PHP中使用Modulo运算符
- 那些黑科技感爆棚的可视化大屏,是怎么做出来的?模板直接套用
- Autodesk的照片建模云服务—Autodesk ReCap 360 photo 的测试数据
- 国外部分音乐人工智能/音乐科技研究机构科研项目简介
- 电力电子器件的系统组成和分类
- 中科创达怎么样?科技实力来说话
- 自定义字体样式引入使用方法、文本阴影、边框阴影、(边框)圆角、渐变、理解重绘与回流、渐进增强和优雅降级的区别
- 一文带你读懂Mock测试
- 第二章:华软代码生成器模板配置