Python全栈工程师

10.4-切片

2019-08-18  本文已影响9人  BeautifulSoulpy

切片关键:交叉索引一样取值

1.线性结构可以索引

lst,tuple,str,bytes,bytearay:
tuple:占用内存小;

可迭代for...in
len()可以获取长度; # length(python 专有的设计思想 )
可以索引,切片;

2. 切片[] ->【) #前包后不包

2.1 切片操作的返回结果是一个新的独立的序列。以列表为例,列表切片后得到的还是一个列表,占用新的内存地址。

切片只是浅拷贝,它拷贝的是原列表中元素的引用,所以,当存在变长对象的元素时,新列表将受制于原列表。

'www.magedu.com'[4:10]      |       'magedu'
#取不出值,不会报错,只是没有结果;
bytearray(b'www.magedu.com')[-4:10]         |        bytearray(b'')
tuple('www.magedu.com')[-10:10]             |          ('m', 'a', 'g', 'e', 'd', 'u')
list('www.magedu.com')[-10:10:1]             |        ['m', 'a', 'g', 'e', 'd', 'u']
list('www.magedu.com')[-10:10:-1]           |      []
 str与list、tuple输出的结果不同,str输出一段字符;tuple\list依次输出单个字符;

# 切片的使用中还可以再添加一个可选择的索引参数:
    s = 'abcdefghijk'
    # 偏移从0开始,直到不含偏移量为11,每隔2个元素索引一次构成最终的新字符串
    print(s[:11:2])    |    acegik
    # 偏移从11开始,直到不含偏移量为0,每隔2个元素索引一次构成最终的新字符串
    print(s[11::-2])      |      kigeca
    # 即从右向左,每隔一个元素索引一次,效果即翻转字符串
    print(s[::-1])

总结:
for c in 'www.magedu.com'[::-1] 与 reversed(lst) 比较,for 迭代既浪费空间又浪费时间;reversed只是浪费时间;
上一篇 下一篇

猜你喜欢

热点阅读