Python数据结构

list

list为python内置有序集合,可随意添加及删除元素;

list用 [] 定义;

mylist = ['aaa', 'bbb', 300, 'ccc']
#list中数据元素可以为不同类型
print len(mylist)  #输出mylist长度
print mylist[0]     #访问mylist第一个元素
print mylist[-1]     #访问mylist最后一个个元素
mylist[0] = 'ddd'
mylist.append('fff')  #mylist在其最后添加元素
mylist.insert(1, 'ggg');  #在mylist第一个元素后添加元素,其他元素后移
mylist.pop()   #删除list末尾的元素(最右侧)
mylist.pop(1) #删除list索引位置为1的元素(第2个)
mylist = ['aaa', [300, 800], 'ccc'] #mylist中包含另一个list
print mylist[1][0]    #输出mylist第二个元素的第一个元素
#切片(Slice)
mylist = ['aaa', 'bbb', 300, 'ccc']
newlist = mylist[0:2]    #从索引0开始取,直到索引2为止, 但是不包含索引2  newlist=['aaa', 'bbb']
#如果第一个索引是0,还可以省略  newlist = mylist[:2]  同上
newlist = mylist[-2:]   # [300,'ccc']

newrange = range(100)
nr = newrange[:10:2]  #前10个,每隔2个取一个; -->  [0, 2, 4, 6, 8]
nr2= newrange[::5]     #所有数,每隔5个取一个
#[:]原样复制

#字符串'xxx'或Unicode字符串u'xxx'也可以看成是一种list,每个元素就是一个字符
'ABCDEFG'[:3]

tuple

python的另一种有序列表,tuple一旦初始化就不能被修改

tuple用 () 定义;

mytuple = ('zhangsan', 'lisi', 'wangwu')
# 定义tuple时就必须确定其元素,因为一旦定义将不能改变其内容;tuple没有append及insert函数,也不能通过[index]更改其值;
#有1个元素的tuple定义时必须加一个逗号,(为了防止与数学公式小括号歧义)
t = (1,)
#一个另类:可变的tuple
t2 = ('a', 'b', [100, 200])
t2[2][0] = 500
# tuple所谓的“不变”是说,tuple的每个元素,指向永远不变

dict

python内置字典数据结构,key-value存储数据;(其他语言中也称为map)

dict用 {} 进行定义

#示例:
d = {'zhangsan' :  23, 'lisi' : 25, 'wangwu' : 28}
print d['zhangsan']
d['zhaoliu'] = 27  #增加dict元素
#当访问dict中不存在的key时会报错,所以访问时,先判断; 
if 'lisi' in d:
    print d['lisi']
#也可以用dict的get方法访问,不存在时,返回None,或者自己指定的value
d.get('lisi')  #返回25
d.get('vivi') #返回None
d.get('vivi', 0) #返回0
#pop(key)方法删除一个key-value组
d.pop('zhangsan')

dict内部存放的顺序和key放入的顺序是没有关系的
dict的key必须是不可变对象

set

Python内置集合类;

创建时需要提供一个list作为输入集合

 s = set([1, 2, 3,1])
print s  #重复元素会被过滤掉set([1, 2, 3])
#add(key)增加元素至set
s.add(4)
#remove(key)删除元素
s.remove(4)
#set集合操作交集、并集
s1  =  ([1, 2, 3])
s2 =   ([2, 3, 4])
s1 & s2  #交集,[2, 3]
s1 | s2   #并集,[1, 2, 3, 4]

#tuple也可以用切片操作,只是操作的结果仍是tuple
(0, 1, 2, 3, 4, 5)[:3]   结果: (0,1,2)

总结:

list和tuple是Python内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。
dict为python内置字典存储(key-value);
set为python内置集合;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容

  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 1,707评论 0 1
  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,692评论 0 5
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,959评论 17 410
  • 过年的时候家里总是不缺“剩饭剩菜”,大鱼大肉吃多,我看到都想吐了,于是顿顿攒满剩菜。也许是父母们经历过饥荒年代,格...
    yuyuyuy阅读 4,170评论 0 0
  • bind //绑定信号 RACSignal *bindSignal = [subject bind:^RA...
    NextStepPeng阅读 525评论 0 0