python——高级特性
切片操作符
Python提供了切片(Slice)操作符,切片操作十分有用,可以通过切片轻松取出某一段数列。比如前10个数:
#slice切片操作符 取前10个元素
L=list(range(0,100))
print(L[:10])#索引为0可以省略 》[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
L[0:10]表示从索引0开始取(索引为0可以省略),直到索引10为止(但是不包括索引10),就是一个“左闭右开”区间[0,10),切片操作符也可以取倒数元素比如L[-2:-1]取到倒数第二个元素98。
用切片操作符实现strip的默认方法
#str.strip() 去掉首尾的指定字符(字符串),默认为空格
str=' hello world! '
print(str.strip()) #使用[:]切片操作符去掉字符串首尾空格
n=0
j=0#前索引
k=0#后索引
while n<len(str):
if str[n:n+1]!=' ':
j=n
break
n=n+1
while n<len(str):
if str[-n-1:-n]!=' ':
k=-n
break
n=n+1
print(str[j:k]) 》hello world!
》hello world!
进阶版
使用[:]切片操作符实现strip方法
#使用[:]切片操作符实现strip方法
def my_strip(str,chr=' '):
n=0#循环索引重置
J=0#前索引
K=0#后索引
Ls=len(str)#输入字符串长度
L=len(chr)#去掉字符长度
#得到前索引J
while n<Ls:
if str[n:n+L]!=chr:
J=n
break
n=n+L
n=0#循环索引重置
#得到后索引K
while n<Ls:
if str[-n-L:Ls-n]!=chr:
K=Ls-n
break
n=n+L
#返回切片
return str[J:K] str='0000a000'
chr=''
print(my_strip(str,chr)) 》0a
简单版
看了一个老哥的代码,非常简单,佩服,记录如下:
def trim(str,chr=' '):
L=len(chr)
while str[:L] == chr: #如果字符串第一个是空格,删除第一个
str = str[L:]
while str[-L:] == chr: #如果字符串最后一个是空格,删除最后一个
str = str[:-L]
return str
python——高级特性的更多相关文章
- 三、python高级特性(切片、迭代、列表生成器、生成器)
1.python高级特性 1.1切片 list列表 L=['Mli','add','sal','saoo','Lkkl'] L[0:3] #即为['Mli','add','sal'] 从索引0开始 ...
- python高级特性:切片/迭代/列表生成式/生成器
廖雪峰老师的教程上学来的,地址:python高级特性 下面以几个具体示例演示用法: 一.切片 1.1 利用切片实现trim def trim(s): while s[:1] == " &qu ...
- python高级特性和高阶函数
python高级特性 1.集合的推导式 列表推导式,使用一句表达式构造一个新列表,可包含过滤.转换等操作. 语法:[exp for item in collection if codition] if ...
- Python高级特性(3): Classes和Metaclasses(转)
原文:Python高级特性(3): Classes和Metaclasses 类和对象 类和函数一样都是Python中的对象.当一个类定义完成之后,Python将创建一个“类对象”并将其赋值给一个同名变 ...
- Python高级特性(2):Closures、Decorators和functools(转)
原文:Python高级特性(2):Closures.Decorators和functools 装饰器(Decorators) 装饰器是这样一种设计模式:如果一个类希望添加其他类的一些功能,而不希望通过 ...
- Python高级特性(1):Iterators、Generators和itertools(转)
译文:Python高级特性(1):Iterators.Generators和itertools [译注]:作为一门动态脚本语言,Python 对编程初学者而言很友好,丰富的第三方库能够给使用者带来很大 ...
- Python高级特性之:List Comprehensions、Generator、Dictionary and set ...
今天帅气的易哥和大家分享的是Pyton的高级特性,希望大家能和我一起学习这门语言的魅力. Python高级特性之:List Comprehensions.Generator.Dictionary an ...
- Python 高级特性介绍 - 迭代的99种姿势 与协程
Python 高级特性介绍 - 迭代的99种姿势 与协程 引言 写这个笔记记录一下一点点收获 测试环境版本: Python 3.7.4 (default, Sep 28 2019, 16:39:19) ...
- Python高级特性(切片,迭代,列表生成式,生成器,迭代器)
掌握了Python的数据类型.语句和函数,基本上就可以编写出很多有用的程序了. 比如构造一个1, 3, 5, 7, ..., 99的列表,可以通过循环实现: L = [] n = 1 while n ...
- Python 高级特性(1)- 切片
前言 面 tx 被问到 python 的高级特性相关,这里做个补充学习吧 正向范围取值 关键点 首位下标是 0 第一个数字是起始下标,第二个数字是结束下标(但最终结果不包含它) 代码块一 # 正向范围 ...
随机推荐
- spring的父子上下文容器及配置
本文由作者张远道授权网易云社区发布. spring父子容器 spring总的上下文容器有父子之分.父容器和子容器.父容器对子容器可见,子容器对父容器不可见. 对于传统的spring mvc来说,spr ...
- jquery优化轮播图2
继续优化 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- ES5和ES6作用域
ES5和ES6作用域 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- MySQL 跟中文相关
convert ()
- RHEL安装oracle客户端(版本为11.2)
RHEL安装oracle客户端(版本为 11.2) 1.获取超级管理员 命令:su - 输入root密码 2.安装依赖包: 命令:yum install -y binutils compat-libs ...
- 浅谈HashMap原理,记录entrySet中的一些疑问
HashMap的底层的一些变量: transient Node<K,V>[] table; //存储数据的Node数组 transient Set<java.util.Map.Ent ...
- 42.oracle物化视图
写在前面 先大概列一下数据库表设计的常规流程.方案.要遵循的规则 根据业务切分设计表 逻辑分层(数据库分层) 数据库结构设计与拆分:水平拆分(mysql分片)oracle分区物化视图中间表设计方案 优 ...
- mysql工具——perror(mysql错误代码,查看错误号释义)
mysql工具——perror(mysql查看错误代码,查看错误号释义) 关键词:mysql错误代码,mysql错误号,perror
- CF1012C Hills 题解【DP】
思路还是比较简单的 dp 吧,但是就是想不出来-甚至类似的方程都被自己推翻了 Description Welcome to Innopolis city. Throughout the whole y ...
- Eclipse打开时“发现了以元素'd:skin'”开头的无效内容。此处不应含有子元素的解决方法
把有问题的 devices.xml 文件删除,再在sdk 里面 tools\lib 下找到devices.xml 文件,将这个文件拷贝到你删除的那个文件夹里,重启 eclipse 就 OK 啦!