首页 > 编程语言 >Python中的切片

Python中的切片

时间:2022-11-23 15:26:36浏览次数:38  
标签:abc sep Python stop 切片 分隔符 字符串 Out

线性结构特征

​ 可迭代 for ... in

​ 有长度,通过len(x)获取,容器

​ 通过整数下标可以访问元素。正索引、负索引

​ 可以切片

切片

sequence[start:stop]

sequence[start:stop:step]

通过给定的索引区间获得线性结构的一部分数据

start、stop、step为整数,可以是正整数、负整数、零

start为0时,可以省略

stop为末尾时,可以省略

step为1时,可以省略

切片时,索引超过上界(右边界),就取到末尾;超过下界(左边界),取到开头


在序列上使用切片[start:stop],子区间索引范围[start, stop),相当于从start开始指向stop的方向上获取数据

默认step为1,表示向右;步长为负数,表示向左

如果子区间方向和步长方向不一致,直接返回当前类型的"空对象"

如果子区间方向和步长方向一致,则从起点间隔步长取值

id

id(object)

CPython中返回对象的内存地址可以用来判断是不是同一个对象

切片赋值

切片操作写在了等号左边

被插入的可迭代对象写在等号右边

切片赋值用作初始化相当于copy,还可以使用。如果用在替换、插入元素,看似语法比较简洁,但是由于列表是顺序表结构,将会引起数据的挪动,这非常影响性能,应当尽量避免使用

z=list()
z[1:] = (40, 50 ,60, 70)
z
Out[4]: [40, 50, 60, 70]

z[3:] = (20,)
z
Out[6]: [40, 50, 60, 20]

分割

split(sep=None, maxsplit=-1) -> list of strings

​ 从至右

​ sep 指定分割字符串,缺省的情况下空白字符串作为分隔符

​ maxsplit 指定分割的次数,-1 表示遍历整个字符串

​ 立即返回列表

rsplit(sep=None, maxsplit=-1) -> list of strings

​ 从右向左开始切,但是输出的字符串字符不会反

​ sep 指定分割字符串,缺省的情况下空白字符串作为分隔符

​ maxsplit 指定分割的次数,-1 表示遍历整个字符串

​ 立即返回列表

splitlines([keepends]) -> list of strings

​ 按照行来切分字符串

​ keepends 指的是是否保留

​ 行分隔符行分隔符包括\n、\r\n、\r等

a='abc dsc sda'
a.split()
Out[3]: ['abc', 'dsc', 'sda']
a.split('d')
Out[6]: ['abc ', 'sc s', 'a']
a.split('d',0)
Out[10]: ['abc dsc sda']
a.split('d',1)
Out[8]: ['abc ', 'sc sda']
a.split('d',2)
Out[7]: ['abc ', 'sc s', 'a']
a.split('d',3)
Out[9]: ['abc ', 'sc s', 'a']
    
s1 = '\na b  \tc\nd\n'
print(s1)

a b  	c
d

a.splitlines(True)
Out[4]: ['\n', 'a b  \tc\n', 'd\n']
a.splitlines()
Out[5]: ['', 'a b  \tc', 'd']

partition(sep) -> (head, sep, tail)

​ 从至右,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组

​ 如果没有找到分隔符,就返回头、2个空元素的三元组

​ sep 分割字符串,必须指定

rpartition(sep) -> (head, sep, tail)

​ 从至左,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组

​ 如果没有找到分隔符,就返回2个空元素和尾的三元组

a=','.join('abcd')
print(a)
a,b,c,d
print(a.partition(','))
('a', ',', 'b,c,d')
print(a.rpartition(','))
('a,b,c', ',', 'd')

标签:abc,sep,Python,stop,切片,分隔符,字符串,Out
From: https://www.cnblogs.com/guangdelw/p/16918425.html

相关文章

  • Python中的元组 Tuple
    一个有序的元素组成的集合使用小括号()表示元组是不可变对象新建t1=()#空元组t2=(1,)#必须有这个逗号t3=(1,)*5t4=(1,2,3)t5=1,'a't6=(......
  • Python画桑基图
    pipinstallpyechartspipinstallsnapshot-seleniumpipinstallsnapshot-phantomjs基于Python利用桑基图(Sankeydiagram)表示转移矩阵(土地利用)https://pyecharts.org......
  • Python爬虫如何实现多线程异步
    如果自己的电脑配置高操作系统可以多任务运行的,应该首先要考虑单核CPU是怎么执行多任务的,操作系统会让各个任务交替执行。例如:任务1执行0.02秒,切换到任务2,任务2执行0.02秒,再......
  • 通过Python实现MySQL和PG数据比对
    生产上,有个需要从MySQL异构复制数据到PG中的需求。数据同步组件用的是go-mysql-postgres(两位前同事基于社区开源的go-mysql-elasticsearch上做的PG功能补丁)。目前测试环境......
  • python编程(改进的线程同步方式)
      在实际代码开发中,gui的代码并不好写。因为不管是mvc、还是mvp都有一定的局限性。那么,这个时候,我就在想,是不是可以用mvp+reactor的方法进行gui的改进操作呢?首先app编写......
  • python编程(orm原理和实践)
    就给出自己对orm的理解。之前廖雪峰给出的code,大家可以通过​​地址​​下载的到。1、orm的使用方法    一般我们使用orm都是这么写代码的,classUser(Model):id=I......
  • python编程(gevent入门)
        大家都知道python脚本执行的时候不是很快,特别是python下面的多线程机制,长久以来一直被大家所诟病。所以,很多同学都在思考python下面有没有什么方法可以让python执行......
  • python编程(巧用装饰器)
        以前没有用过装饰器,也不知道它有什么用。直到最近写了一个log函数,在直到原来python的装饰器可以这么方便。1、原来debug消息的写法    假设有一个process函数,......
  • python编程(类变量和实例变量)
        关于类变量和实例变量,一直不是很清楚。所以,想做几个实验,彻底解决这个问题。为此,我们设计了三个实验。1、直接引用类变量importosimportsysclassA():data=1......
  • python编程(python和c相互调用)
      通常为了扩展python的功能,我们需要将c库移植到python上面。python和c调用一般分成两种情况,一种是python调用c,这种情况最为普遍,也比较简单。另外一种就是c调用python,这......