你可以处理列表的部分元素——Python称之为切片 。

一、使用方法:

  要创建切片,可指定要使用的第一个元素和最后一个元素的索引。

  与函数range() 一样,Python在到达你指定的第二个索引前面的元素后停止。

  要输出列表中的前三个元素,需要指定索引0~3,这将输出分别为0 、1 和2 的元素。

如下为例子:
l = ['xiaoming', 'xiaohei', 'xiaobai', 'jaojun']
print(l[0:1]) #切片,顾头不顾尾,不包含后面的元素
print(l[:2]) #冒号前面的不写,代表从最前面0开始
print(l[1:]) #冒号后面的不写,代表从最后面结束
print(l[:]) #等同于 print(l)

二、适用范围:

  只要能用下标取值的都可以用切片取值;入:字符串、元组、列表

s = 'abcdefg'
print(s[:3])#结果为'abc'
s2 = ''
print(s2[::-1])#切片的步长如果为负数,则从后往前取 7654321
print(s2[-1:-5:-2])#倒着取,隔一个一取值 结果为:75

三、关于列表内存地址的习题

#题目为移除所有奇数
li = [1,1,2,3,4,5,6,7,8,9]
#下面的方法为错误方法:
for i in li:
if i%2!=0:
li.remove(i)
print(li)
#打印结果为[1, 2, 4, 6, 8]
#原因是:移除第一个数后,下标变了,导致下标错乱
#循环的时候不要删除list里面的元素,会导致下标错乱
#解决方法:弄两个list,循环li2,删除li1 #下面的方法为正确方法:
li2 = [1,1,2,3,4,5,6,7,8,9]
for i in li2:
if i%2!=0:
li.remove(i)
print(li) #不能写成li2 = li;li里存的是内存地址,从内存地址找到对应元素;li2相当于和li内存地址相同
li2 = li#结果li和li2内存地址相同
print("li内存地址:",id(li))
print("li2内存地址:",id(li2))
li2 = li[:] #使用切片相当于生成一个新的list,内存地址不同
print("li内存地址:",id(li))
print("li2内存地址:",id(li2))

四、浅拷贝、深拷贝

l = [12,3,4]
l2 = l
l.append('')
l2.remove(12)
print(l2) import copy
stus = ['abc','xiaohei','abc2'] stus1 = stus #浅拷贝,内存地址没变
stus2 = stus[:] #深拷贝,内存地址变了,互不影响
stus3 = copy.deepcopy(stus) #深拷贝,需要引入copy模块 l1 = ['xiaoming', 'xiaohei', 'xiaobai', 'jaojun','xiaolei']
print(l1[0:6:1])#挨个取
print(l1[0:6:2])#2为步长,隔n-1个取一个

Python 切片 day3的更多相关文章

  1. python笔记 - day3

    python笔记 - day3 参考:http://www.cnblogs.com/wupeiqi/articles/5453708.html set特性: 1.无序 2.不重复 3.可嵌套 函数: ...

  2. 关于javascript里面仿python切片操作数组的使用方法

    其实在使用了好一段时间的 python之后,我觉得最让我念念不忘的并不是python每次在写函数或者循环的时候可以少用{}括号这样的东西(ps:其实也是了..感觉很清爽,而且又开始写js的时候老是想用 ...

  3. python s12 day3

    python s12 day3   深浅拷贝 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  4. 流畅的Python——切片

    2.4 切片 在 Python 里,像列表(list).元组(tuple)和字符串(str)这类序列类型都支持切片操作,但是实际上切片操作比人们所想象的要强大很多. 在我个人的使用经历来看,在算法实践 ...

  5. Python切片(入门7)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6407977.html 本文出自:[Edwin博客园] Python切片 1. 对list进行切片 L = r ...

  6. 彻底搞懂Python切片操作

        在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器.理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任 ...

  7. python 切片步长

    python切片 切片:list变量[值下标:结束值下标]  什么意思呢? 就是获取 list中 下标从定义的位置开始获取数据到  自定义的下标位置结束, 但是切片有个规矩就是顾头不顾尾, 举个例子 ...

  8. 关于python切片操作笔记

    一. Python可切片对象的索引方式 包括:正索引和负索引两部分,如下图所示,以a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例:   python索引方式.jpg 二. P ...

  9. 详解Python 切片语法

    Python的切片是特别常用的功能,主要用于对列表的元素取值.这篇文章主要介绍了详解Python 切片语法,需要的朋友可以参考下 Python的切片是特别常用的功能,主要用于对列表的元素取值.使用切片 ...

随机推荐

  1. MySQL Master High Available 理论篇(一)

  2. 《MySQL 5.7 Replication新特性》分享之互动问题解答

    原创 2016-07-21 宋利兵 MySQL中文网 分享主题 <MySQL 5.7 Replication新特性> 嘉宾介绍 宋利兵,MySQL研发工程师.2009年加入MySQL全球研 ...

  3. HDU 5239 上海大都会 D题(线段树+数论)

    打表,发现规律是存在一定次数(较小)后,会出现a=(a*a)%p.可以明显地发现本题与线段树有关.设置标记flag,记录本段内的数是否均已a=a*a%p.若是,则不需更新,否则更新有叶子结点,再pus ...

  4. apache storm 的安装

    原文: http://storm.praveendeshmane.co.in/storm/storm-0-10-0-installation-on-ubuntu-14-04.jsp --------- ...

  5. android 音乐播放器总结

    学习从模仿開始 一个星期完毕的音乐播放器基本功能,具有下一首,上一首,暂停和随机.顺序和单曲等播放.以及保存上一次播放的状态,缺少了歌词显示功能.使用了andbase框架的欢迎动画和界面title. ...

  6. UVA 11021 - Tribles(概率递推)

    UVA 11021 - Tribles 题目链接 题意:k个毛球,每一个毛球死后会产生i个毛球的概率为pi.问m天后,全部毛球都死亡的概率 思路:f[i]为一个毛球第i天死亡的概率.那么 f(i)=p ...

  7. hdu 5823 color II —— 子集DP

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=5823 看博客:http://www.cnblogs.com/SilverNebula/p/5929550. ...

  8. 关于api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案

    关于api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案 目录 关于api-ms-win-crt-runtimel1-1-0dll缺失的解决方案 目录 安装VC redite ...

  9. 协议-网络-安全协议:SSH(安全外壳协议)

    ylbtech-协议-网络-安全协议:SSH(安全外壳协议) SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立 ...

  10. PCB Genesis原点坐标转换关系

    一.Genesis原点坐标转换关系: 1.读取Genesis坐标转换:   UI界面坐标 = 文件坐标 - 偏移值 2.写入Genesis坐标转换:   文件坐标 = UI界面坐标 + 偏移值 3.为 ...