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

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')}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值