对对象进行切片

s[a:b:c] 的形式对 s 在 a 和 b 之间以 c 为间隔取值。 c 的值还可以为负, 负值意味着反向取值。

>>> s = 'bicycle'

>>> s[::3]

'bye'

>>> s[::-1]

'elcycib'

>>> s[::-2]

'eccb'

前面取出卡牌中所有 'A'

>>> deck[12::13]

[Card(rank='A', suit='spades'), Card(rank='A', suit='diamonds'),

Card(rank='A', suit='clubs'), Card(rank='A', suit='hearts')]

对 seq[start:stop:step] 进行求值的时候, Python 实际会调用 seq.__getitem__(slice(start, stop, step))。用 [] 中来返回一个切片对象。

纯格式化文本的切片:

# a:b:c 这种用法只能作为索引或者下标用在 [] 中来返回一个切片对象:

# slice(a, b, c)。

# 对seq[start:stop:step] 进行求值的时候, Python 会调用

# seq.__getitem__(slice(start, stop, step))。

# 使用切片对象

invoice = """

0.....6................................40........52...55........

1909 Pimoroni PiBrella $17.50 3 $52.50

1489 6mm Tactile Switch x20 $4.95 2 $9.90

1510 Panavise Jr. - PV-201 $28.00 1 $28.00

1601 PiTFT Mini Kit 320x240 $34.95 1 $34.95

"""

SKU = slice(0, 6)

DESCRIPTION=slice(6,40)

UNIT_PRICE=slice(40,52)

QUANTITY=slice(52,55)

ITEM_TOTAL=slice(55,None)

line_items=invoice.split('\n')[2:]

for item in line_items:

print(item[UNIT_PRICE],item[DESCRIPTION])

切片赋值

l=list(range(10))

print(l) # [0,1,2,3,4,5,6,7,8,9]

print(l[2:5]) # [2,3,4]

l[2:5]=[11,12,13]

print(l) # [0,1,11,12,13,5,6,7,8,9]

del l[2:5]

print(l) # [0,1,5,6,7,8,9]

print(l[3::2]) # [6,8]

l[3::2]=[100,99]

print(l) # [0,1,5,100,7,99,9]

# l[3::2]=88 TypeError: must assign iterable to extended slice

# l[3::2]=[88] #ValueError: attempt to assign sequence of size 1 to extended slice of size 2

# 如果赋值的对象是一个切片, 那么赋值语句的右侧必须是个可迭代

# 对象。 即便只有单独一个值, 也要把它转换成可迭代的序列。

l[0]=123

l[3:]=[88] # [88]可替换连续多个值

print(l)

l[1:]=[] # 保留第一个元素,删除其余元素

print(l)

python切片的对象_Python 对象切片相关推荐

  1. python属性访问顺序_Python 对象属性的访问

    在 Python 中,一切皆对象.属性访问可以理解为是从一个已有的对象中获得另一个对象的方法.对象属性的访问涉及到对象的 __dict__ 属性.描述符等概念,以及 __getattribute__. ...

  2. python基本对象_python对象之对象基础1

    所有的 Python 对像都拥有三个特性:身份,类型和值. 身份: 每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数 id()来得到. 这个值可以被认为是该对象的内存地址.您极少会 ...

  3. python布尔类型运算_Python对象类型及其运算方法(详解)

    基本要点: 程序中储存的所有数据都是对象(可变对象:值可以修改 不可变对象:值不可修改) 每个对象都有一个身份.一个类型.一个值 例: >>> a1 = 'abc' >> ...

  4. python切片操作例题_Python之切片操作

    假设list的长度(元素个数)是length, start_index和stop_index在符合虚拟的逻辑位置关系时, start_index和stop_index的绝对值是可以大于length的. ...

  5. python切片是什么_python列表切片是什么

    我们基本上都知道Python的序列对象都是可以用索引号来引用的元素的,索引号可以是正数由0开始从左向右,也可以是负数由-1开始从右向左. 在Python中对于具有序列结构的数据来说都可以使用切片操作, ...

  6. python中字典的value可以为任意对象_Python对象作为字典值

    所以我有以下代码,其中字典的值是一个对象,该对象的关键是对象中的一个项目: class MyObject(): def getName(self): return self.name def getV ...

  7. python对象点方法_python对象方法、类方法、静态方法

    1.我们已经讨论了类/对象可以拥有像函数一样的方法,这些对象方法与函数的区别只是一个额外的self变量 # -*- coding:utf-8 -*- #!/usr/bin/python # Filen ...

  8. python属性使用教程_Python对象的属性访问过程详解

    只想回答一个问题: 当编译器要读取obj.field时, 发生了什么? 看似简单的属性访问, 其过程还蛮曲折的. 总共有以下几个step: 1. 如果obj 本身(一个instance )有这个属性, ...

  9. python运算符的分类_python对象——标准类型运算符

    对象值的比较 比较运算符用来判断同类型对象是否相等,所有的内建类型均支持比较运算,比较运算返回布尔值 True 或 False. 注意,实际进行的比较运算因类型而异.换言之,数字类型根据数值的大小和符 ...

最新文章

  1. mysql 优化器算法_SQL 查询优化器底层原理解析【MySQL 篇】
  2. linux命令:groupdel
  3. 群晖备份linux分区,数据丢失的后悔药,群晖NAS备份方案详解
  4. java基础——static 关键字小节
  5. 克服浮躁_建立强大的全球社区时克服挑战
  6. python操作sqlite数据库_Python操作Sqlite正确实现方法解析
  7. mate10鸿蒙系统,华为将发布 MatePad Pro:搭载鸿蒙系统,麒麟 9000 处理器
  8. ssh-copy-id命令的介绍,使免密更方便
  9. 二阶声波正演c语言程序_问:程序员怎么敲代码才不累?答:装上显示器支架之后...
  10. 【GlobalMapper精品教程】001:GlobalMapper23 Pro-x64中文安装教程(附软件包下载)
  11. 网页点击链接,跳转qq添加好友
  12. 机器学习(埋坑)—— 概念学习(Concept Learning)
  13. 学习记录657@python计算股价的回撤与收盘价回撤率组合图实现
  14. 做股权激励时,要不要进行绩效考核
  15. HTML女朋友生日祝福、老婆生日快乐源代码,可定制照片+音乐+表白话
  16. 2021-10-20-Flask-01- 基本运行框架及配置文件
  17. 一篇教会你,Redis主从、哨兵、 Cluster集群。
  18. Linux banner/konsole
  19. 3|射频识别技术|第一讲:射频识别技术概述|完整内容
  20. [4G+5G专题-141]: 终端 - 测试仪表详解

热门文章

  1. win10设置禁止系统更新
  2. html页面锁屏,锁屏页面.html
  3. linux disk 清除数据,如何在Linux中使用TestDisk恢复已删除的文件
  4. 11.1金山游戏开发笔试
  5. 鸿蒙应用runtime,鸿蒙OS初探
  6. CodeFirst的EF6迁移和时间戳错误
  7. Python 3.7 已上架 Microsoft Store,让你在 Windows 轻松使用 Python
  8. python 英语翻译 excel_翻译篇Day2-用python读写Excel–数据图表篇
  9. python 运维管理架构_企业运维监控平台架构设计与实现(ganglia篇)
  10. iphone储存空间系统怎么清理_系统项占用了 iPhone 过多的储存空间怎么办?