◎python-字典

本文介绍了Python编程语言中的字典数据结构,包括如何创建、更新和删除键值对,以及转换其他序列为字典的方法。此外,还探讨了字典的特性,如键的唯一性和不可变性,以及各种内置方法如`get`、`update`和`fromkeys`等的用法。
摘要由CSDN通过智能技术生成

字典:将键值对(键值对用英文冒号隔开)用英文逗号隔开,并放入花括号中

dict={'键1':'值','键2':'值',...}

b={
   1:'qwe',
   2:'qaz',
   3:'asd',#最后一个逗号可加可不加
}
#字典不强调缩进,只是为了美观,增加代码的可读性

【键不能相同,值可以相同】

【键相同时后一个值会覆盖前面设置的值】

【值可以取任何数据类型,键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行】

1》创建空字典

        1. 使用{}来创建字典

                d={}

        2. 使用内置函数创建字典

                d=dict()

2》len求长【求取字典中的键值对】

d={'a':23,'b':44,'c':77}
print(len(d))

3》将其他序列转化为字典

#使用dict()转化为字典
l1=['qa','ar','zx','er','ec','rm']#必须对应
l2=[('a','b'),('c','d')]
t1=(['a','b'],['c','d'])
t2=('ab','ac','ad')
t3=('1q','2q','3w')
#键相同的,值不同,后值会代替前值
print(dict(l1),dict(l2),dict(t1),dict(t2),dict(t3))

4》向字典中增加,替换,删除键值对

a={1:99,2:98,3:97,4:96}
a[6]=95#增加了6:95的键值对
print("add 5:95",a)
a[6]=94#将6对应的值替换成94
print("replace 95 94: ",a)
del a[1]#删除了键为1的键值对
#a.pop(a[1])#同上一条一样,这两条删除不存在的键时会报错,为保程序顺利执行完,一般会判断key in dict
print(a)
序号函数及描述
1dict.clear()
删除字典内所有元素
2dict.copy()
返回一个字典的浅复制
3dict.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4dict.get(key, default=None)
返回指定键的值,如果键不在字典中返回 default 设置的默认值
5key in dict
如果键在字典dict里返回true,否则返回false
6dict.items()
以列表返回一个视图对象
7dict.keys()
返回一个视图对象
8dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9dict.update(dict2)
把字典dict2的键/值对更新到dict里
10dict.values()
返回一个视图对象
11pop(key[,default])
删除字典 key(键)所对应的值,返回被删除的值。
12popitem()
返回并删除字典中的最后一对键和值。

2. copy

a={'a':12,'b':13,'c':15}
b=a.copy()#不会随原字典发生改变
c=a#同一对象,会随原字典改变
a['b']=26
print(a)
print(b)
print(c)
'''
{'a': 12, 'b': 26, 'c': 15}
{'a': 12, 'b': 13, 'c': 15}
{'a': 12, 'b': 26, 'c': 15}
'''

3. fromkeys(seq,val)【是返回新字典的类方法,常用于更新数据,val默认为None】

a=[1,2,3,4,5]
b={}
b=b.fromkeys(a,'c')#用a中的每个元素做键,值固定
print(b)

4. d.get(键)与d[键]

d={'a':23,'b':44,'c':77}
#获取值
print(d['a'])#访问不存在的键报错
print(d.get('d',0))#访问不存在的键返回default,default默认为None

8.  setdefault(键,值)【字典中有该键不管,字典中没有该键则添加该键值对】

dict={'a':1}
dict.setdefault('a',2)#存在a键,不添加a值
dict.setdefault('b',2)#不存在b键,添加b对应的值
dict.setdefault('b',7)##存在b键,不添加b值
print(dict)#{'a': 1, 'b': 2}

         对一串字符串中的字符个数进行计算

m='aaaa bb yyugdh'
count={}
for cha in m:
    count.setdefault(cha,0)
    count[cha]=count[cha]+1
print(count)

9. update【合并字典,有相同键,b的值覆盖a】 

a={1:99,2:98,3:97,4:96}
b={5:95,6:94,7:93,8:92}
a.update(b)
print("copy b to a:",a,b)

6,7,10. keys,values,items【获取字典中的所有键;获取字典中的所有值;以列表返回一个视图对象】【字典内的键值对是无序存在的,所以不能按照列表元组那样用索引访问值,要用键访问值】

d={'a':12,'b':14,'c':34,'d':35}
print(d.keys(),d.values(),d.items())

#利用keys,items遍历字典
for i in d:
    print(i,d[i])
for k,v in d.items():
    print(k,v)

 练习:有A,B,C,D四人,A有[2a,3b,6c],B有[2b,3u,3a],C有[2a,3c,3u],D有[3a,8u]

ABCD各带了多少东西;加在一起abcu各有多少

all = {'A': {'a': 2, 'b': 3, 'c': 6}, 'B': {'b': 2, 'u': 3, 'a': 3}, 'C': {'a': 2, 'c': 3, 'u': 3},'D': {'a': 3, 'u': 8}}
#a=10,b=5,c=9,u=14
pop={}
n=0
for i, j in all.items():#all的键:值
    for k in j.keys():#all值的键
        pop.setdefault(k,0)#若存在该键则值不变为0
        pop[k]+=j.get(k)#键值=键值+
single={}
for i,j in all.items():#遍历all字典的键值对
    single[i]=sum(j.values())#提取i键对应的j字典,获取j字典的值组成的列表,并求和
print('one people things',single)
print('all people things',pop)
#one people things {'A': 11, 'B': 8, 'C': 8, 'D': 11}
#all people things {'a': 10, 'b': 5, 'c': 9, 'u': 14}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值