切片

作者: SHISHENGJIA | 来源:发表于2017-05-15 22:07 被阅读18次

在Python 里,像列表(list)、元组(tuple)和字符串(str)这类序列类型都支持切片操作,但是实际上切片操作比我们所想象的要强大很多。下面是一些切片形式的用法。

对对象进行切片

>>> s = 'bicycle'
>>> s[::3]
'bye'
>>> s[::-1]
'elcycib'
>>> s[::-2]
'eccb'

a:b:c 这种用法只能作为索引或者下标用在 [] 中来返回一个切片对象:slice(a, b, c)。对 seq[start:stop:step] 进行求值的时候,Python 实际上会调用seq.__getitem__(slice(start, stop, step))
下面纯文本文件形式的收据以一行字符串的形式被解析

invoice = """
 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')

for item in line_items:
    print(item[UNIT_PRICE], item[DESCRIPTION])

$17.50    Pimoroni PiBrella                
$4.95    6mm Tactile Switch x20           
$28.00    Panavise Jr. - PV-201            
$34.95    PiTFT Mini Kit 320x240

对切片赋值
如果把切片放在赋值语句的左边,或把它作为 del 操作的对象,我们就可以对序列进行嫁接、切除或就地修改操作。

>>> l = list(range(10))
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l[2:5] = [20, 30]
>>> l
[0, 1, 20, 30, 5, 6, 7, 8, 9]
>>> del l[5:7]
>>> l
[0, 1, 20, 30, 5, 8, 9]
>>> l[3::2] = [11, 22]
>>> l

相关文章

  • 15.Go_Slice(切片)

    Go 切片 定义切片 切片初始化 len()和cap()函数 空(nil)切片 切片拦截 append() 和co...

  • Python的高级特性

    切片 list切片 tuple切片 str切片 迭代 在Python中迭代是通过for ... in ...来实现...

  • 切片

    切片前的准备 1切片前,备份图片;切片后,也要保存文件,为日后修改做准备。 2切片前设置切片文件夹(?不懂) 切片...

  • 你能一口说出go中字符串转字节切片的容量嘛?

    神奇的现象 切片, 切片, 又是切片! 前一篇文章讲的是切片, 今天遇到的神奇问题还是和切片有关, 具体怎么个神奇...

  • 【golang】slice底层函数传参原理易错点

    切片底层结构 切片的底层结构主要包括引用数组的地址data,切片长度len与切片容量cap。 以切片为参数调用函数...

  • day02-07clice

    切片slise 切片的定义 初始化 长度len和容量cap 由数组得到切片 切片的容量cap是指底层数组从切片的第...

  • Mapreduce切片机制

    FileInputFormat切片机制 切片机制:简单的按照文件的内容长度进行切片切片大小,默认等于Block大小...

  • 数据类型

    切片slice 切片取值 s = s[low : high : max] 切片的三个参数的切片截取的意义为 low...

  • go 语言切片

    go 语言切片 简单切片 slice 是 对 array 的一个 view 创建简单切片 切片作为函数参数 对切...

  • Go数组和切片区别

    数组是值传递,切片是引用传递 切片可扩容 切片多一个cap属性 切片底层用数组实现

网友评论

      本文标题:切片

      本文链接:https://www.haomeiwen.com/subject/qdjcxxtx.html