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。

切片操作符

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='000'
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

 

目录
相关文章
|
15天前
|
Python
闭包(Closure)是**Python中的一种高级特性
闭包(Closure)是**Python中的一种高级特性
32 8
|
2月前
|
存储 大数据 数据处理
Python 中的列表推导式与生成器:特性、用途与区别
Python 中的列表推导式与生成器:特性、用途与区别
29 2
|
3月前
|
机器学习/深度学习 人工智能 安全
python和Java的区别以及特性
Python:适合快速开发、易于维护、学习成本低、灵活高效。如果你需要快速上手,写脚本、数据处理、做点机器学习,Python就是你的首选。 Java:适合大型项目、企业级应用,性能要求较高的场景。它类型安全、跨平台能力强,而且有丰富的生态,适合更复杂和规模化的开发。
67 3
|
2月前
|
设计模式 监控 安全
Python多线程编程:特性、挑战与最佳实践
Python多线程编程:特性、挑战与最佳实践
42 0
|
2月前
|
设计模式 监控 安全
Python多线程编程:特性、挑战与最佳实践【1】
Python多线程编程:特性、挑战与最佳实践【1】
36 0
|
4月前
|
存储 数据库 C++
"深入剖析Python元组(tuple):与列表的对比、特性解析及高效应用场景展示"
【8月更文挑战第9天】Python元组与列表虽均用于存储元素集合,但有本质差异。元组不可变,创建后无法修改,适合保护数据不被意外更改的场景,如作字典键或传递固定值。列表则可变,支持动态增删改,适用于需频繁调整的数据集。元组因不可变性而在性能上有优势,可用于快速查找。两者各有千秋,根据具体需求选择使用。例如,元组可用于表示坐标点或日期,而列表更适合管理用户列表或库存。
123 1
|
4月前
|
安全 算法 Go
Python面向对象的三大特性
python面向对象编程(OOP)的三大特性是封装、继承和多态。这些特性共同构成了OOP的基础,使得软件设计更加灵活、可维护和可扩展。
41 3
|
4月前
|
机器学习/深度学习 运维 数据挖掘
scikit-learn 1.0 版本重要新特性一览
scikit-learn 1.0 版本重要新特性一览
|
5月前
|
机器学习/深度学习 数据采集 前端开发
网络爬虫开发:JavaScript与Python特性的小差异
我们以前写JavaScript的代码时,在遇到了发送请求时,都是需要去await的。 但是为什么Python代码不需要这样做呢? 这就是因为JavaScript是异步的,Python是同步的。 JavaScript就需要使用关键词await将异步代码块变为同步代码。
|
5月前
|
数据库 开发者 Python
Python 3.9的新特性有哪些?
【7月更文挑战第2天】Python 3.9的新特性有哪些?
65 1