gpt4 book ai didi

Python对切片命名的实现方法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python对切片命名的实现方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、需求 。

我们的代码已经变得无法阅读,到处都是硬编码的切片索引,我们想优化他们.

2、解决方案 。

代码中如果有很多硬编码的索引值,将导致可读性和维护性都不佳.

内置的slice()函数会创建一个切片对象,可以用在任何运行进行切片操作的地方.

?
1
2
3
4
5
6
7
8
9
10
11
items = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 ]
a = slice ( 2 , 4 )
print (items[ 2 : 4 ])
print (items[a])
 
items[a] = [ 10 , 11 , 12 , 13 ]
print (items)
 
del items[a]
print (items[a])
print (items)

运行结果:

?
1
2
3
4
5
[ 2 , 3 ]
[ 2 , 3 ]
[ 0 , 1 , 10 , 11 , 12 , 13 , 4 , 5 , 6 ]
[ 12 , 13 ]
[ 0 , 1 , 12 , 13 , 4 , 5 , 6 ]

如果有一个slice对象的实例s。可以分别通过s.start、s.stop以及s.step属性得到关于该对象的信息。例如:

?
1
2
3
4
5
6
items = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 ]
a = slice ( 2 , 8 , 3 )
print (items[a])
print (a.start)
print (a.stop)
print (a.step)

结果:

?
1
2
3
4
[ 2 , 5 ]
2
8
3

此外,可以通过使用indices(size)方法将切片映射到特定大小的序列上。这会返回一个(start,stop,step)元组,所有的值都已经恰当地限制在边界以内(当做索引操作时可避免出现IndexError异常),例如:

?
1
2
3
4
5
s = 'HelloWorld'
a = slice ( 2 , 5 )
print (a.indices( len (s)))
for i in range ( * a.indices( len (s))):
   print ( str (i) + ":" + s[i])

结果:

?
1
2
3
4
( 2 , 5 , 1 )
2 :l
3 :l
4 :o

最后此篇关于Python对切片命名的实现方法的文章就讲到这里了,如果你想了解更多关于Python对切片命名的实现方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com