你可以处理列表的部分元素——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个取一个

最新文章

  1. PHP连接mysql数据库,并将取出的数据以json的格式输出
  2. PhotoSwipe - 移动开发必备的 iOS 风格相册
  3. 在linux下安装tesseract-ocr
  4. Java Security: Illegal key size or default parameters?
  5. Ehcache 使用
  6. Python升级Yum不能使用解决
  7. Mysql Partition 理论知识总结
  8. java rmi 使用方法
  9. Java面向对象 Main函数 静态的应用 单例设计模式
  10. 12-TypeScript总结
  11. 01-vue学习之前的准备
  12. 安装mysql zip5.7版--安裝
  13. 第八章| 1. MySQL数据库|库操作|表操作
  14. js获取客户端ip地址
  15. JavaScript 时间、格式、转换及Date对象总结
  16. 日志记录的作用和方法 java
  17. 报表在vista和win7下无法浏览应用的解决办法
  18. Oracle案例11——Oracle表空间数据库文件收缩
  19. Codeforces Round #243 (Div. 1)A. Sereja and Swaps 暴力
  20. Hibernate中连接数据库的配置

热门文章

  1. [iOS]怎样在iOS开发中切换显示语言实现国际化
  2. Swift代理和传值
  3. Android 输入管理服务-输入事件到达之后的处理流程
  4. phoenixframe自己主动化測试平台对div弹出框(如弹出的div登陆框)的处理
  5. Java 获取随机日期
  6. luogu2467 [SDOI2010]地精部落
  7. Android - Fragment BackStack 清空
  8. Android 6.0 中TimePicker显示为滚动样式的方法
  9. Codeforces--598A--Tricky Sum(数学)
  10. Codeforces--630I--Parking Lot(规律)