您的位置:首页 > 理论基础 > 数据结构算法

python数据结构(列表、元组、字典)

2017-09-10 01:23 344 查看

python数据结构(列表,元组,字典)

1. 列表

列表的创建,定义列表时使用" [] "表示,列表的长度可变,可以通过索引进行访问,可以嵌套其他的数据结构如:元组,字典
列表的常用方法:
添加:append()
插入:insert()
查找下标:index()
扩展:extend()


列表的删除

'''
明确知道列表位置时,使用del()方法
'''
lis = ['a', 'b', 'c', 'd']
del(lis[0])
del(lis) #删除整个列表

'''
不明确要删除的字符的位置时使用remove()方法
'''
lis.remove("a")

'''
删除列表最后一个元素
'''
lis.pop()


列表的排序

'''
列表的排序:使用sort(reverse=)方法
当reverse=Flase时进行升序
反之为降序
'''
lis = ['1', '2','3','4']
print(lis.sort(reverse=Flase))
# ['1', '2','3','4']
print(lis.sort(reverse=True))
# ['4','3','2','1']


2. 元组

元组这种的数据结构的特点和list类似,但是元组的长度是不可变的,一旦创建就无法改变
元组创建时使用“ () ”表示,也可以省略该括号
当只有一个值时一定需要使用()加“,”表示,要不然会解析成一个整数类型

其他的操作方法和列表是一样的


3. 字典

python中的字典和java的map集合是类似的,
都是key和value结构,字典的查询是非常快的


使用sorted()进行排序

#创建一个字典
d = {1:'a', 2:'b', 3:'c', 4:'d'}

#sorted(dict, key, reverse)

#按照key进行降序
sorted(d.items(), key=lambda item:item[0], reverse=False)

#按照value进行降序
sorted(d.items(), key=lambda item:item[1], reverse=True)

'''
注意:排序过后的字典是新的字典
'''


使用collection中OrderedDict()进行有序化

import from collection import OrderedDict
orderdict = OrderedDict()
#定义ordereddict之后添加字典时,就是有序的了
d = {1:'a', 2:'b', 3:'c', 4:'d'}
d[5] = "e"
d[6] = "f"
d[7] = "g"
#输出的结果会和添加时的顺序是一致的

'''
使用这个类的时候会有个弊端,
因为它内部维护着一个双向链表,在数据量大的时候,会很消耗内存
'''


字典的取值

获取字典的值时,习惯性的使用 dict[key] 这样方式

这样使用会存在一些弊端,比如 key 不存在的时候会抛出异常。

所以我们一般提倡使用 dict.get(key) 方法进行获取字典的 value

,就算 key 不存在的时候,只会返回一个None,不会抛出异常。

从字典中获取一部分值

'''
使用字典的推导式进行获取字典的子集
'''

d = {'a':1, 'b':2, 'c':3, 'd':4}
#获取值大于2的字典
newd =  {s:i for s, i in d.items if i>2}
#{'c':3, 'd':4}


字典的翻转

字典的翻转就是把 key 和 value 进行位置的互转

d = {1:'a', 2:'b', 3:'c'}
new_d = ([(x,y) for y,x in d.items()])
print(new_d)
# {'a':1, 'b':2, 'c':3}


字典的更新

#如果已经定义好的字典,有了新的变动,我们使用update()方法进行更新

d = {1:'a', 2:'b'}
d1 = {3:'c',1:'d'}
d.update(d1)
print(d)
#{1:'d', 2:'b', 3:'c'}


查找两个字典相同的内容

#将两个字典中相同的内容找出来
d = {1:'a', 2:'b', 3:'c'}
d1 = {1:'a', 2:'b', 4:'d'}

new_d = set(d) & set(d1) #得到相同的内容
print(new_d)
#{(1,'a')(2,'b')}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 数据结构