python字典Dict

1,dictionary是除list外最灵活的内置数据结构类型,用**{}括起**来。
以键值的方式存储数据
字典中的元素是无需的
键是不可变序列,不允许重复,值可以重复
字典可以根据需要动态伸缩
字典会浪费比较大的内存,是一种以空间换时间的数据结构

2,创建

#第一种使用{}创建
d1={'Alice':98,'Abby':99}
#第二种使用dict()创建
d2=dict(name='Alice',age=12)
#创建空字典
d3={}

3,获取字典中的元素

d1={'Alice':98,'Abby':99,'Tom=98}
#第一种使用[],键不存在就抛出keyError
print(d1['Alice'])
#第二种使用get(),键不存在返回默认值
print(d1.get('Alice'))
print(d1.get('Lucy'))

4,key的判断

d1={'Alice':98,'Abby':99,'Tom=98}
print('Lucy' in d1)
print('Lucy' not in d1)

5,删除

del d1['Alice']  #删除指定键值对
d1.clear()   #清空

6,新增

d1['Lucy']=99

7,视图

d1={'Alice':98,'Abby':99,'Tom':98}
keys=d1.keys()
print(keys,type(keys))
values=d1.values()
print(values,type(values))
items=d1.items()
print(items)

8,字典元素遍历

d1={'Alice':98,'Abby':99,'Tom':98}
for item in d1:
    print(item) #只获取键
    print(item,d1[item]) #获取键值对
    print(item,d1.get(item))  #另一种方式获取键值对

9,字典生成式
内置函数zip(),用于将可迭代对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表

name=['Alice','Abby','Tom']
score=[98,99,98]
d={name.upper():score for name,score in zip(name,score)}
print(d)

10,字典的内置函数
cmp(dict1,dict2) 比较2个字典元素
len(dict) 计算字典元素个数即键的总数
str(dict) 输出字典中可打印的字符串
type(variable) 返回输入的变量类型,若是字典就返回字典类型
radiansdict.clear() 清除字典中的所有元素
radiansdict.copy() 返回一个字典的浅复制
radiansdict.formkeys() 创建一个新字典,以序列seq中的元素做字典的键,val为所有字典的键对应的初始值
radiansdict.get(key,default=None) 返回指定键的值,如果键不在字典中,返回default的值
radiansdict.has_key() 如果键在字典里返回True,否则返回False
radiansdict.items() 以列表返回可遍历的(键,值)元组数据
radiansdict.keys() 以列表返回字典中所有的键
radiansdict.setdefault(key,default=None) 与get类似,但如果键不存在与字典中,将会添加键并将值设为default
radiansdict.update(dict2) 将dict2中的键/值对更新到dict中
radiansdict.values() 以列表返回字典中的所有值

注意:
不可变序列:字符串,元组(没有增删改操作)
可变序列:列表,字典(可以增删改,对象地址不发生改变)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值