这篇内容我们通过简单的示例来学习如何处理列表的一部分,这在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 列表切片相关推荐

  1. python列表切片得到的是列表还是字符串_python中列表的切片问题 python arry怎么取列切片...

    python 列表切片赋值 对列表切片进行赋值,解释器处理时是直接将序列中的内容赋值过去的 ,还切片赋值,得到的与原变量无关,是两个不同的对象:直接赋值,引用的是同一个对象. 请看下例 切片赋值. a ...

  2. python列表切片后得到剩余列表_python列表切片和嵌套列表取值操作详解

    python列表切片和嵌套列表取值操作详解 给出列表切片的格式: [开头元素::步长] # 输出直到最后一个元素,(最后一个冒号和步长可以省略,下同) [开头元素:结尾元素(不含):步长] # 其中, ...

  3. python列表切片图解_Python列表切片操作实例总结

    本文实例讲述了Python列表切片操作.分享给大家供大家参考,具体如下: 切片指的是列表的一部分. 1 基本用法 指定第一个元素和最后一个元素的索引,即可创建切片 .Python 会在到达指定的第二个 ...

  4. Python 列表切片操作

    Python列表切片 切片是Python序列的重要操作之一,适用于列表.元组.字符串.range对象等.可以用切片截取列表中任何部分来获得一个新的列表,也可以进行元素的增.删.改. 在Python中, ...

  5. python列表切片规则_Python 列表切片

    想必很多人都使用过列表的切片,通过切片可以从列表中获取一个或多个元素,但你真的了解切片? 一.一般玩法 >>> name = ['a', 'b', 'c', 'd', 'e', 'f ...

  6. python 列表切片负值,详解Python 切片语法

    Python的切片是特别常用的功能,主要用于对列表的元素取值.使用切片也会让你的代码显得特别Pythonic. 切片的主要声明如下,假设现在有一个list,命名为alist: alist = [0,1 ...

  7. Python 列表切片详解

    一.列表切片 切指–将某些东西切成小块.列表切片是从原始列表中提取列表的一部分的过程.在列表切片中,我们将根据所需内容(如,从何处开始,结束以及增量进行切片)剪切列表.  Python中符合序列的有序 ...

  8. python列表切片口诀-切片 - 廖雪峰的官方网站

    取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack' ...

  9. python列表切片口诀-python学习之“切片操作从入门到精通”

    在python学习开发的过程中,我们总是不断的要对List(列表),Tuple(元组)有取值操作:假如我们有一个列表List1现在想取出1其中的前5个元素,改怎么操作呢? 1 >>> ...

  10. python列表切片赋值_Python中对切片赋值原理分析

    有这么个问题::t = [1, 2, 3] t[1:1] = [7] print t  # 输出 [1, 7, 2, 3] 谁会对列表这么进行赋值呢?但是对于这个输出结果的原因确实值得去再了解下,今天 ...

最新文章

  1. python月薪是多少-2019年 Python就业市场行情好不好, 薪资多少?
  2. angular 与 highcharts 结合使用
  3. 文献管理工具mendeley登录问题
  4. hadoop安装与配置
  5. [jQuery] jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this
  6. web安全day44:进阶,使用Nmap+Wireshark理解端口扫描
  7. 光模块基础知识【快速入门】02
  8. 制作QQ微信支付宝三合一收款码
  9. Mac下安装git极简教程
  10. kubuntu16.04安装和卸载fcitx输入法
  11. 2011年MacAir更新系统
  12. 如何在PHP中使用Modulo运算符
  13. 那些黑科技感爆棚的可视化大屏,是怎么做出来的?模板直接套用
  14. Autodesk的照片建模云服务—Autodesk ReCap 360 photo 的测试数据
  15. 国外部分音乐人工智能/音乐科技研究机构科研项目简介
  16. 电力电子器件的系统组成和分类
  17. 中科创达怎么样?科技实力来说话
  18. 自定义字体样式引入使用方法、文本阴影、边框阴影、(边框)圆角、渐变、理解重绘与回流、渐进增强和优雅降级的区别
  19. 一文带你读懂Mock测试
  20. 第二章:华软代码生成器模板配置

热门文章

  1. 虚拟机系统Win7与主机之间不能实现拖放的问题及解决方法
  2. 2020新款蓝牙耳机排行榜,蓝牙耳机品牌排行榜
  3. Windows下获取当前时间函数汇总
  4. 功能实现思路、逻辑思路、功能、逻辑
  5. android 图片相似度比对,Android图片对比(图片相似度)代码
  6. 2018智能汽车盘点,新旧造车势力的智能化PK 1
  7. Win11下解决VS下载0kb/s的问题
  8. 如何选择电瓶修复技术培训的品牌?
  9. tensorflow-gpu测试代码以及版本检测
  10. JSON数据转换总结(VIP典藏版)