首页 > 代码库 > 【Python】06、python内置数据结构1
【Python】06、python内置数据结构1
一、数据结构与获取帮助信息
1、数据结构
通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其它的数据结构。
python的最基本数据结构是序列
序列中的每个元素被分配一个序号(即元素的位置),也称为索引:索引从0开始编号
2、python中如何获取命令帮助
获取对象支持使用的属性和方法:dir(),
某方法的具体使用帮助:help()
获取可调用对象的文档字串:print(obj.__doc__)
In [15]: dir(list) Out[15]: [‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__gt__‘, ‘__hash__‘, ‘__iadd__‘, ‘__imul__‘, ‘__init__‘, ‘__init_subclass__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__reversed__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘append‘, ‘clear‘, ‘copy‘, ‘count‘, ‘extend‘, ‘index‘, ‘insert‘, ‘pop‘, ‘remove‘, ‘reverse‘, ‘sort‘] In [17]: help(list) Help on list object: class list(object) | list() -> new empty list | list(iterable) -> new list initialized from iterable‘s items | | Methods defined here: | | __add__(self, value, /) | Return self+value. | | __contains__(self, key, /) | Return key in self. | | __delitem__(self, key, /) | Delete self[key]. | | __eq__(self, value, /) | Return self==value. | | __ge__(self, value, /) | Return self>=value. In [20]: print(list.__doc__) list() -> new empty list list(iterable) -> new list initialized from iterable‘s items In [21]: list.__doc__ Out[21]: "list() -> new empty list\nlist(iterable) -> new list initialized from iterable‘s items"
二、列表
1、列表
列表:是一个任意类型的对象的位置相关的有序集合。
列表是一个序列,用于顺序的存储数据
列表的定义和初始化:
In [5]: lst1 = list() # 使用工厂函数list() In [6]: lst2 = [] # 使用[] In [7]: type(lst1) Out[7]: list In [8]: type(lst2) Out[8]: list In [9]: lst1 = list(range(10)) # 将一个可迭代对象转化为列表 In [10]: lst1 Out[10]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
通常在定义列表的时候使用中括号,在转化可迭代对象为列表时用list()
三、列表相关的操作
对列表一般有增、删、改、查的相关操作
1、查
1)通过索引(下标)访问列表的元素
返回该索引对应的元素
索引从左边开始,从0开始,不能超出范围,否则抛出IndexError
负数索引从右边开始,从-1开始
In [25]: lst1 Out[25]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [26]: lst1[0] Out[26]: 0 In [27]: lst1[10] --------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-27-255d55760a91> in <module>() ----> 1 lst1[10] IndexError: list index out of range In [28]: lst1[-1] Out[28]: 9 In [29]: lst1[-3] Out[29]: 7 In [30]: lst1[-3]
2)list.index()
返回查找到该元素的第一个索引
如果该元素不存在,则抛出ValueError
start参数指定从哪个索引开始查找;stop参数指定从哪个索引结束,并且不包含该索引
start和stop可以为负数,但是总是从左往右查找
In [51]: help(lst2.index) Help on built-in function index: index(...) method of builtins.list instance L.index(value, [start, [stop]]) -> integer -- return first index of value. Raises ValueError if the value is not present. In [47]: lst2=[1, 3, 5, 2, 3, 5] In [48]: lst2.index(3) Out[48]: 1 In [49]: lst2.index(2) Out[49]: 3 In [52]: lst2.index(8) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-52-857c8a1f260a> in <module>() ----> 1 lst2.index(8) ValueError: 8 is not in list In [56]: lst2.index(3, 3) Out[56]: 4 In [57]: lst2.index(3, 3, 4) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-57-dd5e9d56cf7c> in <module>() ----> 1 lst2.index(3, 3, 4) ValueError: 3 is not in list In [59]: lst2.index(3, 3, 5) Out[59]: 4 In [60]: lst2.index(3, 4, 5) Out[60]: 4 In [70]: lst2.index(3, -1, -6,) # start 大于 stop 是一个空列表 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-70-b3ae59853639> in <module>() ----> 1 lst2.index(3, -1, -6,) ValueError: 3 is not in list In [71]: lst2.index(3, -6, -1,) Out[71]: 1 In [74]: lst2.index(3, -6, 9,) In [98]: lst2.index(3, 1, 1) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-98-a95f8fe9908b> in <module>() ----> 1 lst2.index(3, 1, 1) ValueError: 3 is not in list In [99]: lst2.index(3, 1, 2) Out[99]: 1
list.index()函数的实现原型:
def index(lst, value, start = 0, stop = -1): i = start for x in lst[start: end] if x == value: return i i += 1 rais ValueError()
3)list.count()
返回该值在列表中出现的次数
In [89]: lst2 Out[89]: [1, 3, 5, 2, 3, 5] In [90]: lst2.count(1) Out[90]: 1 In [91]: lst2.count(5) Out[91]: 2 In [92]: lst2.count(8) Out[92]: 0
原型:
def count(lst, value): c = 0 for x in lst: if x == value: c += 1 return c
小结:
index()和count()的时间复杂度是O(n),也称线性复杂度;效率与数据规模线性相关
【Python】06、python内置数据结构1