Python中的切片

来源:互联网 发布:中国人口普查最早数据 编辑:程序博客网 时间:2024/06/06 01:01

1切片
切片就是取出集合中的一部分元素。当然集合不能是无序的,因为他是按照索引去取值的
例:range()函数可以创建一个数列
取出:
1. 前10个数;
2. 3的倍数;
3. 不大于50的5的倍数。

L = range(1, 101)print L[:10]print L[2::3]print L[4:50:5]

输出结果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

分析:
range()函数输出是第一个参数到第二个参数,但是不包含第二个参数,也就是说 L=[1,2,…,100]
切片的参数:
第一个是起始的位置 默认起始位置为0
第二个是截止的位置 因为结果是不包含截止位置的,所以默认截止位置为len(L),而不是len(L)-1
第三个是当前位置向后移动n个位置取出这个位置的元素
所以 print L[4:50:5]的起始位置就是4,这个位置的元素就是5,前50个元素就是0到49, 因为结果是不包含截止位置的,所以第二个参数为50。因为取得是5的倍数,所以第二个元素应该是10,也就是第9个位置的元素,9—4=5,所以第三个参数为5

倒序切片
Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片
倒数第一个元素的索引是-1。倒序切片包含起始索引,不包含结束索引
例:
利用倒序切片对 1 - 100 的数列取出:
* 最后10个数;
* 最后10个5的倍数

L = range(1, 101)print L[-10:]print L[-46::5]

输出:
[91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
[55, 60, 65, 70, 75, 80, 85, 90, 95, 100]
分析:
最后10个5的倍数
就是55到100;
55元素的位置就是64;如果反过来就它的位置就是45,因为倒序切片是从-1开始的而不是从零开始,所以这个位置就是-46

对字符串切片,道理和上面的一样
例:字符串有个方法 upper() 可以把字符变成大写字母:
‘abc’.upper()
‘ABC’
但它会把所有字母都变成大写。请设计一个函数,它接受一个字符串,然后返回一个仅首字母变成大写的字符串。

def firstCharUpper(s):    return s[0].upper()+s[1:]print firstCharUpper('hello')print firstCharUpper('sunday')print firstCharUpper('september')

输出:
Hello
Sunday
September

0 0
原创粉丝点击