python中的数据结构

1.列表

(1)   建立列表

list(‘python’)

[‘p‘, ‘y‘, ‘t‘, ‘h‘, ‘o‘, ‘n‘]

(2)列表的常用方法:

append   在列表末尾添加元素

>>>l=[‘a’,’b’,’c’]

>>>l.append(‘d’)

>>>l

[‘a‘,‘b‘,‘c‘,‘d‘]

count   统计某个元素在列表中出现的次数

>>>[‘a‘,‘a‘,‘b‘,‘c‘].count(‘a‘)

2

extend  扩展一个列表

>>>a=[1,2]

>>>b=[3,4]

>>>a.extend(b)

>>>a

[1,2,3,4]

insert   插入一个对象

>>>a=[1,2,3]

>>>a.insert(1,0)

>>>a

[1,0,2,3]

remove 移除1个对象      只会移除第一个对应的值

>>>a=[1,1,2,3]

>>>a.remove(1)

a

[1,2,3]

index 返回索引位置

>>>a=[1,2,3]

>>>a.index(2)

1

pop()  删除最后一个元素,并返回最后一个元素

>>>a=[1,2,3]

>>>a.pop()

3

reverse  反序存放列表元素

>>>a=[1,2,3]

>>>a.reverse()

>>>a

[3,2,1]

sort()  排序

>>>a=[2,1,3]

>>>a.sort()

>>>a

[1,2,3]

2.元组

元组与列表的不同之处在于,元组一旦创建之后不可修改

(1) 建立元组

>>>tuple((1,2,3))

(1,2,3)

也可以使用列表建立元组

>>>tuple([1,2,3])

(1,2,3)

元组不能修改,所以没有append remove 等操作

元组的优势在于,他比列表的速度快,如果不想修改元素,仅仅有查询等操作,使用元组更好。在不希望修改元素的场合,使用元组更加安全,元组还可以作为字典的键值,列表不可以。

3.字典

(1)创建字典

>>>d={‘a‘:1,‘b‘:2}

>>>d

{‘a‘: 1, ‘b‘: 2}

也可以使用dict 函数创建字典,

>>>m=[(‘a‘,1),(‘b‘,2)]

>>>d=dict(m)

>>>d

{‘a‘: 1, ‘b‘: 2}

(2)字典的常用方法

clear 清除字典的键值对

copy 返回一个具有相同键值对的新字典

>>>x={‘a‘:1,‘b‘,2}

>>>y=x.copy()

>>>y

{‘a‘:1,‘b‘:2}

fromkeys   使用所给的键来创建字典

>>>{}.fromkeys([‘name‘,‘age‘])

{‘age‘:None,‘name‘:None}

get 查询某个键对应的值

>>>d={‘a‘:1,‘b‘:2}

>>>d.get(‘a‘)

1

haskey 检查字典是否有某个键

>>>d={‘a‘:1,‘b‘:2}

>>>d.haskey(‘a‘)

1

items()  将字典中所有键值对按照列表的形式返回

keys()  将字典中所有的键按照列表的形式返回

values() 将字典中的所有的值按照列表的形式返回

>>>d={‘a‘:1,‘b‘:2}

>>>d.items()

[(‘a‘, 1), (‘b‘, 2)]

>>>d.keys()

[‘a‘,‘b‘]

>>>d.values()

[1,2]

pop()  删除某个键值对

popitem()删除一个键值对

update() 用某个键值对更新字典

>>>d={‘a‘:1,‘b‘:2}

>>>u={‘a‘:3,‘b‘:2}

>>>d.update(u)

>>>d

{‘a‘:3,‘b‘:2}

4.集合

集合类似于列表,与列表不同的是它的元素是无序的,不能使用元素的顺序操作集合

(1)建立集合

>>>set(range(5))

set([0, 1, 2, 3, 4])

(2)集合的常用方法

union()  取并集

difference()  取差集

intersection()  取交集

issubset()  判断是否为子集

issuperset()  判断是否为超集

>>>a=set([1,2])

>>>b=set([2,3])

>>>a.union(b)

set([1, 2, 3])

>>>a.difference(b)    #在a中而不在b中的元素

set([1])

>>>a.intersection(b)  #a和b的交集

set([2])

add()  向集合添加一个元素

remove()  集合删除一个元素

clear()   清除集合中的元素

>>>s=set([1,2,3])

>>>s.add(4)

>>>s

set([1, 2, 3, 4])

>>>s.remove(4)

>>>s

set([1, 2, 3])

>>>s.clear()

set([])

5.堆

堆是优先队列的一种,python可以使用模块heapq来使用堆

堆得操作有 heappush(heap,x)  将x入堆

heappop()   将堆中的最小值弹出

nlargest(n,iter)  返回iter中前n大的元素

nsmallest(n,iter)  返回iter中n小的元素

>>>from headq  import *

>>>h=[];

>>>for i in range(5):

heappush(h,i)

>>>heap

[0, 1, 2, 3, 4]

>>>heappop(h)

0

>>>nlargest(2,h)

[4, 3]

>>>nsmallest(2,h)

[1, 2]

6.双端队列

python中可以使用deque模块来操作双端队列

双端的操作有:append() 在尾部添加  appendleft()  在左侧添加  pop()删除最后一个元素  popleft() 删除最左端一个元素

>>>from collections import deque

>>>q=deque(range(3))

>>>q.appendleft(0)

>>>q.append(3)

>>>q

deque([0, 0, 1, 2, 3])

>>>q.pop()

3

>>>q.popleft()

0

>>>q

deque([0, 1, 2])

python中的数据结构,布布扣,bubuko.com

时间: 2024-10-07 11:44:08

python中的数据结构的相关文章

python中的数据结构-链表

一.什么是链表 链表是由一系列节点构成,每个节点由一个值域和指针域构成,值域中存储着用户数据,指针域中存储这指向下一个节点的指针.根据结构的不同,链表可以分为单向链表.单向循环链表.双向链表.双向循环链表等.单向链表的结构如下图所示: head 节点永远指向第一个节点, tail节点永远指向最后一个节点,节点中最后一个指针指向的是None 值,链表本质上就是由指针链接起来的一系列值. 二.为什么使用链表 我们经常拿链表和数组作比较,实际上数组是一组固定长度的序列,链表可以动态地分配元素,下面我们

第二章 python中重要的数据结构(下)

二.元组(tuple):不可变序列 跟list一样,也是一种序列,唯一不同的是,元组元素不能被修改,通常用(, ,)表示元组,也可以不加括号. 1 #创建元组 2 >>> 1,2,3 3 (1, 2, 3) 4 >>> t = (1,2,3) 5 >>> t 6 (1, 2, 3) 7 #创建空元组 8 >>> t1 = () 9 >>> t1 10 () 11 #创建只有一个元素的元组,这里注意必须带上逗号 12

Python学习(一):入门篇:python中的一些数据结构

Python里的一些基本知识点总结 Last Edit 2014/5/2 这里记录的是Python2.7版本的语法特征,部分与Python3.0是不一样的. 一,关于开发环境 在windows下可以直接在官网下载相关的版本,然后默认安装.使用直带的IDLE编辑器. IDLE中两个有用的快捷键: ALT+P:重复历史命令(从最近到最老) ALT+N:   重复历史命令(从最老到最近) IDLE中没有清屏功能. 在cmd中进行: 1,首先要在环境变量的path中添加相关的路径: C:\Python2

Python中的高级数据结构(转)

add by zhj: Python中的高级数据结构 数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构.换句话说,数据结构是用来存储一系列关联数据的东西.在Python中有四种内建的数据 结构,分别是List.Tuple.Dictionary以及Set.大部分的应用程序不需要其他类型的数据结构,但若是真需要也有很多高级数据结构可供 选择,例如Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint.本文将介绍这些数据结构的用法,看 看它

Python中的高级数据结构详解

这篇文章主要介绍了Python中的高级数据结构详解,本文讲解了Collection.Array.Heapq.Bisect.Weakref.Copy以及Pprint这些数据结构的用法,需要的朋友可以参考下 数据结构 数据结构的概念很好理解,就是用来将数据组织在一起的结构.换句话说,数据结构是用来存储一系列关联数据的东西.在Python中有四种内建的数据结构,分别是List.Tuple.Dictionary以及Set.大部分的应用程序不需要其他类型的数据结构,但若是真需要也有很多高级数据结构可供选择

Python中的三种数据结构

Python中,有3种内建的数据结构:列表.元组和字典.1.列表     list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目.列表中的项目.列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表.一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目.由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的,并且列表是可以嵌套的.实例:#coding=utf-8animalslist=['fox','tiger','ra

Python中对复杂数据结构排序(类似C中结构体数据结构)

Python中排序主要有两个函数:sorted和列表成员函数sort,两者除了调用方式有些区别外,最显著的区别是sorted会新建一个排序好的列表并返回,而sort是修改原列表并排好序.sorted的原型是: sorted(iterable, cmp=None, key=None, reverse=False) sort的原型是: list.sort(cmp=None, key=None, reverse=False) 其中cmp和key都是函数引用,即可以传入函数名.这两个函数都是对list里

Python中的数据类型和数据结构

一.数据类型 Python中有六个标准数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) 其中,除列表List和Dictionary字典外,其他数据类型皆为不可变数据类型. 二.数据结构 Python中常见的数据结构可以统称为容器(container).序列(如列表和元组).映射(如字典)以及集合(set)是三类主要的容器. 列表:shoplist = ['apple', 'mango', 'carrot

序列是Python中最基本的数据结构

list是一种有序可重复的集合,可以随时添加和删除其中的元素.序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现.列表的数据项不需要具有相同的类型创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可.如下所示:1 list1 = ['Google', 'Runoob', 1997, 2000];2 list2 = [1, 2, 3