切片关键:交叉索引一样取值
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只是浪费时间;
网友评论