python slice对象_Python slice how-to,我知道Python slice,但是如何使用内置的slice对象呢?...

通过调用slice创建一个slice,使用的字段与执行[start:end:step]表示法时使用的字段相同:sl = slice(0,4)

要使用切片,只需将其作为索引传递到列表或字符串中:>>> s = "ABCDEFGHIJKL"

>>> sl = slice(0,4)

>>> print(s[sl])

'ABCD'

假设您有一个固定长度文本字段的文件。您可以定义一个切片列表,以便轻松地从该文件中的每个“记录”中提取值。data = """\

0010GEORGE JETSON 12345 SPACESHIP ST HOUSTON TX

0020WILE E COYOTE 312 ACME BLVD TUCSON AZ

0030FRED FLINTSTONE 246 GRANITE LANE BEDROCK CA

0040JONNY QUEST 31416 SCIENCE AVE PALO ALTO CA""".splitlines()

fieldslices = [slice(*fielddef) for fielddef in [

(0,4), (4, 21), (21,42), (42,56), (56,58),

]]

fields = "id name address city state".split()

for rec in data:

for field,sl in zip(fields, fieldslices):

print("{} : {}".format(field, rec[sl]))

print('')

印刷品:id : 0010

name : GEORGE JETSON

address : 12345 SPACESHIP ST

city : HOUSTON

state : TX

id : 0020

name : WILE E COYOTE

address : 312 ACME BLVD

city : TUCSON

state : AZ

id : 0030

name : FRED FLINTSTONE

address : 246 GRANITE LANE

city : BEDROCK

state : CA

id : 0040

name : JONNY QUEST

address : 31416 SCIENCE AVE

city : PALO ALTO

state : CA

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值