python之数据结构

List:

list.append(x)
list.extend(lis)
list.insert(i, x)
list.remove(x)
list.pop(i)
#会同时返回移除的值,如果没有设置i,则返回最后一个值
del list[i]   del list[i:j]
list.index(x)
#返回x第一次出现的位置
list.count(x)
#返回x出现的次数
list.sort()  #sorted()  见blog sort高级用法
list.reverse()

#list快速创建:
lis = [x**2 for x in range(10)]

[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
-----------------------------------
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
[[row[i] for row in matrix] for i in range(4)]
------------------------------------
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

zip:
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]
>>> x2, y2 = zip(*zipped)
>>> x == list(x2) and y == list(y2)
True
Dictionary:

>>> a = dict(one=1, two=2, three=3)
>>> b = {‘one‘: 1, ‘two‘: 2, ‘three‘: 3}
>>> c = dict(zip([‘one‘, ‘two‘, ‘three‘], [1, 2, 3]))
>>> d = dict([(‘two‘, 2), (‘one‘, 1), (‘three‘, 3)])
>>> e = dict({‘three‘: 3, ‘one‘: 1, ‘two‘: 2})
>>> a == b == c == d == e
True

del d[key]
dic.clear()   #Remove all items from the dictionary.
dic.copy()    #Return a shallow copy of the dictionary
dic.get(key[, default])   #f default is not given, it defaults to None
dic.pop(key[, default])   #If key is in the dictionary, remove it and return its value, else return default. If default is not given and key is not in the dictionary, a KeyError is raised.
dic.popitem()     #Remove and return an arbitrary (key, value) pair from the dictionary.
dic.items()    #Return a copy of the dictionary’s list of (key, value) pairs.
dic.keys()     #Return a copy of the dictionary’s list of keys
dic.values()   #eturn a copy of the dictionary’s list of values
dic.iteritems() dic.iterkeys() dic.itervalues()
set:

python的set和其他语言类似, 是一个无序不重复元素集。
基本功能包括关系测试和消除重复元素. 集合对象还支持union(合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.  

sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持 indexing, slicing, 或其它类序列(sequence-like)的操作。 

s = set([3,5,9,10])      #创建一个数值集合
t = set("Hello")         #创建一个唯一字符的集合
------------
set([‘H‘, ‘e‘, ‘l‘, ‘o‘])

a = t | s          # t 和 s的并集
b = t & s          # t 和 s的交集
c = t – s          # 求差集(项在t中,但不在s中)
d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)

用set去除列表中重复元素
>>> [i for i in set([11,22,33,44,11,22])]
[33, 11, 44, 22]  
时间: 2024-08-02 04:10:59

python之数据结构的相关文章

python 常用数据结构使用

python 字典排序 http://www.cnblogs.com/kaituorensheng/archive/2012/08/07/2627386.html 函数原型 sorted(dic,value,reverse) dic为比较函数,value 为排序的对象(这里指键或键值), reverse:注明升序还是降序,True--降序,False--升序(默认) 案例 dic = {'a':3 , 'b':2 , 'c': 1} 注意 排序之后原字典没有变,顺序依旧 python 常用数据结

python基本数据结构序列

python基本数据结构序列 ,六种内建序列类型:列表 元组字符串  Unicode字符串  buff对象和xrange对象 序列通用操作: 索引:元素的编号是从 0开始的 到索引号为负数时 查找方式是从右到左的 索引写在[]中 分片:类似索引的操作可以指定范围,当为一个对象创造副本时可以用 b = a[:] 这样的形式创建,这样 当 a被操作时不会影响 b  因为他们指向的不是同一块区域 相加:表示连接操作,列表连接后是新的列表不能改变列表原有的结构,序列相加时候要同种类型  进行,否则会报

用Python实现数据结构之二叉搜索树

二叉搜索树 二叉搜索树是一种特殊的二叉树,它的特点是: 对于任意一个节点p,存储在p的左子树的中的所有节点中的值都小于p中的值 对于任意一个节点p,存储在p的右子树的中的所有节点中的值都大于p中的值 一个图例: 基于二叉搜索树的这种关系,我们可以用它来实现有序映射 遍历二叉搜索树 基于二叉搜索树的特性,采用中序遍历的方式可以使得遍历结果是按照从小到大的顺序排列的.了解中序遍历可以参考用Python实现数据结构之树 这里还需要思考的一个内容是在基于中序遍历的前提下,如何求一个节点的后继节点或前驱节

python实现数据结构单链表

#python实现数据结构单链表 # -*- coding: utf-8 -*- class Node(object): """节点""" def __init__(self, elem): self.elem = elem self.next = None # 节点一开始初始化的时候并不知道下一个元素的地址,所以先设置为空 class SingLinkList(object): """单链表""

Python之‘数据结构’

简介 数据结构基本上就是--它们是可以处理一些数据的结构.或者说,它们是用来存储一组相关数据的.在Python里面有三种内建的数据结构--列表.元组和字典. 一.列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目.假象你有一个购物列表,上面记载着你想买的东西,就容易理解列表了.只不过在你的购物列表上,可能每样东西都独自占有一行,而在Python中,你在每个项目之间用逗号分隔. 列表中的项目应该包含在方括号中,这样Python就知道你在指明一个列表.一旦你创建一个列

python常见数据结构整理

Python中常见的数据结构可以统称为容器(container).序列(如列表和元组).映射(如字典)以及集合(set)是三类主要的容器. 一.序列(列表.元组和字符串) 序列中的每个元素都有自己的编号.Python中有6种内建的序列.其中列表和元组是最常见的类型.其他包括字符串.Unicode字符串.buffer对象和xrange对象.下面重点介绍下列表.元组和字符串. 1.列表 列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能. (1).创

[0x01 用Python讲解数据结构与算法] 关于数据结构和算法还有编程

忍耐和坚持虽是痛苦的事情,但却能渐渐地为你带来好处. ——奥维德 一.学习目标 · 回顾在计算机科学.编程和问题解决过程中的基本知识: · 理解“抽象”在问题解决过程中的重要作用: · 理解并实现抽象数据结构: · 复习Python编程语言 二.写在前面 自第一台电子计算机使用线路和开关传达人类的指令以来,我们编程的思考方式有了很大的改变,在很多方面,计算机技术的发展为计算机科学家提供了众多的工具和平台去实现他们的想法.高性能理器,高速网络和大内存使得计算机研究者必须掌握在这样复杂的螺旋式通道中

python常用数据结构

python中有四种最常用的数据结构,分别是列表(list),字典(dict),集合(set)和元组(tuple) 下面简单描述下它们的区别和联系 1.初始化 不得不说,python数据结构的初始化比java是简单的多了. list=[] dict={} tuple=(1,2,) set=([1,2,3]) 初始化之后,print set 结果是:{1,2,3},可以发现,其实set就是没有value的dict 2.是否有序 list和tuple是有序的,dict和set是无序的 3.是否可变

python 5 数据结构

转载: http://www.cnblogs.com/known/archive/2010/09/03/1817499.html python中有三个内建的数据结构, 列表, 元组, 和 字典 1. 列表 (List) 列表用一堆方括号[] 表示, 没想数据之间用 逗号 隔开, 一旦你建立了一个列表, 你可以对它进行添加, 删除, 或搜索. 所以列表是可以改变的 2. 元组 元组和列表相似,但是 元组是不可以改变的!元组是用() 表示的, 每项数据之间也是用逗号隔开, 元组通常用在使语句或者用户

python和数据结构

在紧张的备考日语的过程中抽时间刷一下北京大学的python数据结构.查缺补漏. /整除 >>>divmod(9,5) (1,4) /复数 >>>import cmath >>>(1+2j)*(1+3j) (-5+5j) >>>(1+4j).imag 4.0 >>>(1+4j).real 1.0 早就已经知道的C语言要想使用一个变量必须先初始化,Python的变量机制是引用数据对象,例如赋值语句'a = 0'是创建a这