python的三种数据结构
来源:互联网 发布:矩阵qr分解例题 编辑:程序博客网 时间:2024/04/30 13:51
python中常用的三种数据结构分别是list,tuple,dict。
①list看起来跟C语言的数组类似,不过它的元素可以是字符串、list、tuple以及dict,也就是可以混合嵌套。通过list下标能够访问任何元素。
>>> s = ["abc", ["s", "b"], (1, 2, 3), {"key": "red"}]>>> s['abc', ['s', 'b'], (1, 2, 3), {'key': 'red'}]>>> s[1]['s', 'b']>>> s[2](1, 2, 3)
list有许多属性方法,通过dir()可以查看。
>>> dir(s)['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
append是追加一个元素,extend也是对list进行添加,两者的不同在于append是将追加的对象最为一个整体,添加到list里面,即成为list的一个元素;而extend是将追加的元素拆分,将其基本元素追加到list中,这样添加进list的就可能不止一个元素。
>>> m = ['a']>>> n = ['b', 'c']>>> x = ('123', '456')>>> m.append(n)>>> m['a', ['b', 'c']]>>> m.extend(n)>>> m['a', ['b', 'c'], 'b', 'c']>>> m.extend(x)>>> m['a', ['b', 'c'], 'b', 'c', '123', '456']>>> m.append(x)>>> m['a', ['b', 'c'], 'b', 'c', '123', '456', ('123', '456')]
count计算某元素的个数;index是元素在list中的下标;insert向list插入元素,需要指定插入的位置;pop类似于堆栈中的push,是将list末尾的元素push出来,原list删除该元素;remove删除某元素;reverse将list所有元素顺序颠倒;sort是一个排序函数,能够制定排序函数,实现自己需要的排序规则。
②tuple与list类似,也可以通过下表来查找元素。它与list最大的区别在于tuple的元素是不可改变的。正因为如此,tuple的属性方法对外的只有两个查询类:count,index。
>>> s = (1, 2, 3, 4)>>> s[1:4](2, 3, 4)>>> s[3] = 5Traceback (most recent call last): File "<pyshell#49>", line 1, in <module> s[3] = 5TypeError: 'tuple' object does not support item assignment>>> dir(s)['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
③dict是相当灵活的数据结构,它的每个元素由一个key和一个value组成。我们能够根据key来查找元素,就好像查字典一样,value是我们要查的字。dict的元素同样能够嵌套。
>>> s = {"1": 1, "2": "red", "3": {'key': "dog"}, "4": [1, 2, 3]}>>> s["4"][1, 2, 3]
dict的属性方法最多,其中items,get,keys,values等是较常用的且很好用的方法。
>>> dir(s)['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']
items是按照(key,value)列出dict内所有的元素,keys则是列出所有的key,values是列出所有的value。
>>> s.values()[1, {'key': 'dog'}, 'red', [1, 2, 3]]>>> s.items()[('1', 1), ('3', {'key': 'dog'}), ('2', 'red'), ('4', [1, 2, 3])]>>> s.keys()['1', '3', '2', '4']
get是根据key获取dict中某个value, 该函数在元素不存在的条件下可以指定一个值,多数指定为None,这不影响原dict。
>>> s{'1': 1, '3': {'key': 'dog'}, '2': 'red', '4': [1, 2, 3]}>>> s.get("3"){'key': 'dog'}>>> s.get("6", "dog")'dog'>>> s{'1': 1, '3': {'key': 'dog'}, '2': 'red', '4': [1, 2, 3]}
- python的三种数据结构
- Python三种数据结构
- Python之:三种数据结构
- 三种数据结构
- python的几种数据结构
- python的几种数据结构
- 求逆序数的三种数据结构比较
- party-bid的三种数据结构实现
- pandas库简介(1)--pandas的三种数据结构
- opencv的三种数据结构CvMat IplImage Mat 读取示例
- 数据种数据表表结构的查询
- Tokyo Cabinet 的四种数据结构
- Tokyo Cabinet 的四种数据结构
- 常用的十种数据结构
- Tokyo Cabinet 的四种数据结构
- 管理资源的几种数据结构
- 常用的十种数据结构
- Redis的5种数据结构
- 配置 ssh无密码登陆
- ZOJ 1203 - Swordfish
- 集合论初步认识 java学习(一)
- [HBase] LSM树 VS B+树
- HDU 2011
- python的三种数据结构
- java泛型中的K,V,T,E,?,object的意思及其用法
- 委托代理设计模式(协议)
- Android NDK 使用skia 画图及显示图片的例子
- 网络还真是好东西,06年才毕业写的一点东西居然还在
- UVa 10193 All You Need Is Love 求互质 数学题
- 史上最详细的mrtg设置说明
- c++中四个类型转换符:static_cast,const_cast,dynamic_cast,reinterpret_cast
- oracle中常用的数据字典浅析