美文网首页
Python数据结构

Python数据结构

作者: viean | 来源:发表于2018-04-27 23:56 被阅读0次

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内置集合;

相关文章

网友评论

      本文标题:Python数据结构

      本文链接:https://www.haomeiwen.com/subject/wohjkftx.html