天天看点

python(索引/切片)

一.索引

1.索引值从左到右-->从0开始,索引值从右到左-->从-1开始

  • 取值格式var[index]
>>> name = "xinfangshuo"
>>>
>>> name[0]
'x'
>>> name[5]
'n'
>>> name[-1]
'o'
>>> name[-2]
'u'      

2.注意:整型int和字典dict和集合set不支持索引取值

>>> age = 123
>>>
>>> age[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object has no attribute '__getitem__'
>>> age = "123"
>>> age[1]
'2'
>>> name = {"name1":"zhangsan","name2":"lisi","name3":"wangwu"}
>>>
>>> name[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 1
>>>
>>> set = {"zhangsan","lisi","wangwu"}
>>>
>>> set[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing      

3.多维数组/列表,索引取值

"""多维数组,索引取值"""
>>> name = ("zhangsan","lisi","wangwu","zhaoliu","wangba",("zhengying","lizhipeng","lvlinlin"))
>>>
>>> name[5][1]
'lizhipeng'
>>>
>>> list = [1,2,3,4,[5,6,7,[8,9,0]]]
>>>
>>> list[4][3][1]
9
>>> list[-1][-1][-2]
9      

二.切片  var[start_index:end_index]

  • 注意:切出的值不包含end_index的值

1.正切

>>> name = "xinfangshuo"
>>>
>>> name[3:6]
'fan'
>>> name[3:7]
'fang'
>>> name[0:11]
'xinfangshuo'
>>> name[0:]
'xinfangshuo'
>>> name[:]
'xinfangshuo'      

2.反切

>>> name = "xinfangshuo"
>>> 
>>> name[:-1]
'xinfangshu'
>>> name[:-2]
'xinfangsh'
>>> name[3:-4]
'fang'      

3.跳级切

>>> name = "xinfangshuo"
>>>
>>> name[3:7]
'fang'
>>> name[3:7:]
'fang'
>>> name[3:7:1]
'fang'
>>> name[3:7:2]
'fn'
>>> name[7:3:2]
''
>>> name[::3]
'xfgu'      

4.反跳级切

  • 从右往左切
  • start_index位置要在end_index位置的右边
>>> name = "xinfangshuo"
>>>
>>> name[-1:-8:-2]
'ohga'
>>> name[-1:8:-2]
'o'
>>>
>>> name[1:10:-2]
''
>>> name[10:1:2]
''
>>> name[10:1:-2]
'ohgan'      

作者:多测师高级讲师_郑sir

微信:ZhengYing8887

出处:https://www.cnblogs.com/ZhengYing0813/

备注:本文版权归作者所有,欢迎转载和添加作者微信探讨技术,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。

继续阅读