关闭

python中的数据结构

171人阅读 评论(0) 收藏 举报

http://blog.csdn.net/u011608357/article/details/26143339


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])


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Python基本数据结构 习题及源码

##习题1: #列表a = [11,22,24,29,30,32] #1 把28插入到列表的末端 >>> a.append(28) >>> a [11, 22, 24, 29, 30, 32, 2...
  • Holyang_1013197377
  • Holyang_1013197377
  • 2015-10-16 22:46
  • 1750

高阶Python----常用的数据结构与算法

前言高阶Python系列文章是笔者想要突破自己目前的技术生涯瓶颈而作,不具有普适性。本文主要是介绍Python在数据结构和算法中常用的函数。这也是数据分析领域必备知识点。也不是特地为了某些读者而作,想...
  • guzhenping
  • guzhenping
  • 2017-02-12 21:27
  • 1902

记录一下python的数据结构 - dict

记录一下python的数据结构 - dict python内置,在其他语言中称为map 使用键-值(key-value)存储 优点是查找速度非常快>>> d = {‘Michael’: 95, ‘Bo...
  • xg123321123
  • xg123321123
  • 2016-10-21 22:36
  • 400

【Machine learning(python篇)】-几种常用的数据结构

python中有多种数据结构,数据结构之间也可以相互转化,概念一多就容易使人混淆,对于初学者来说本来很容的概念,最终却变成了噩梦,很难区分不同数据结构之间的用法,这样就会造成乱用数据结构,致使运行效率...
  • zhang_xinxiu
  • zhang_xinxiu
  • 2016-12-20 09:52
  • 4573

python数据结构——排序算法——八大排序算法的Python实现

1、插入排序 描述 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算...
  • u010454729
  • u010454729
  • 2015-10-27 21:25
  • 597

用Python实现基本数据结构——栈与队列

转自:http://sjlovechina.blog.163.com/blog/static/123368598201111169211721/ 最近学习《算法导论》,看了栈与队列,觉得用C实现没意...
  • shanliangliuxing
  • shanliangliuxing
  • 2013-10-14 18:49
  • 1268

python基础知识——内置数据结构(字典)

字典是有“键-值”对组成的集合,字典中的“值”通过“键”来引用。“键-值”对之间用逗号隔开,并且被包含在一对花括号中。 1、字典的创建 格式 dictionary_name = {key1 : ...
  • google19890102
  • google19890102
  • 2015-03-29 17:26
  • 1601

python数据结构学习笔记-4-链表

链表
  • hjh00
  • hjh00
  • 2015-11-09 15:13
  • 808

python数据结构与算法 1 基本数据结构

数据结构与算法的python实现,译自《Problem solving with algorithms and data structures using Python》的网络版,作者为Brad Mi...
  • ppabcde
  • ppabcde
  • 2014-03-14 12:22
  • 2935

如何高效地学习数据结构——Python篇

原文链接:http://www.datastudy.cc/to/42         我们来看看如何高效地学习一门语言的数据结构,今天我们先看Python篇。   ...
  • qq_28219759
  • qq_28219759
  • 2016-10-27 10:21
  • 880
    个人资料
    • 访问:85694次
    • 积分:1383
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:69篇
    • 译文:0篇
    • 评论:3条
    最新评论