python——字典

一、定义

使用一对大括号表示,元素中间使用英文逗号,元素包括key,value,其中键使用不可变类型,例如:整数,字符串,元祖等,不能是列表,key和value之间使用冒号分割,key是不可重复对象

二、基本操作

1、定义对象:

1)、定义字典对象

d={1:["中华","玉溪"],(2,):["五粮液","茅台","郎酒"],1:["蓝带","百威","青岛"]}
# <class 'dict'> {1: ['蓝带', '百威', '青岛'], (2,): ['五粮液', '茅台', '郎酒']}

2)、定义空字典

d2={}

 3)、通过dict内置函数,得到字典

#通过dict内置函数,得到字典
xli=("中华","一汽","奇瑞")
yli=[["尊驰","骏捷","V5"],["迈腾","速腾"],["QQ","路虎"]]
z=zip(xli,yli)
#通过dict函数将zip对象转换成字典对象
d3=dict(z)
# {'中华': ['尊驰', '骏捷', 'V5'], '一汽': ['迈腾', '速腾'], '奇瑞': ['QQ', '路虎']}

2、字典对象的操作

1)、添加或修改

          引用key完成添加或者修改,如果key不存在,则添加,key存在则修改

d={"唐朝":["李白","杜甫"]}
#添加
d[6]=("洪秀全","石达开","韦昌辉")
# 结果:{'唐朝': ['李白', '杜甫'], 6: ('洪秀全', '石达开', '韦昌辉')}
#如果key存在,修改
d['唐朝']=('白居易','孟浩然','王维')

2)、使用update返回添加或修改另一个字典对象

d={1:"aa",2:"bbb"}
k={8:"汉字",6:"汉服",2:"胡服"}
#调用update修改字典对象
d.update(k)
#结果{1: 'aa', 2: '胡服', 8: '汉字', 6: '汉服'}

3)setdefault方法获取key,如果key不存在则在原字段中添加key-vakue

x={8:'aa',9:'bb'}
y=x.setdefault(18,"cc")
#返回结果cc {8: 'aa', 9: 'bb', 18: 'cc'}

3、删除

1)使用pop()或者popitem()方法

      pop()方法按key获取对应的value,并从字典中删除该key-value

      popitem()方法弹出最后一对key-value,并从字典中删除该key-value

      两种方法均有返回值,按key删除,如果key不存在则抛出异常

d={"bike":8,"abs":(1,3,5),"kite":[8.5,6.6]}
d.popitem()
#{'bike': 8, 'abs': (1, 3, 5)}

2)、使用del按key删除key-value,或者删除引用对象

#按key一对数据删除
# del d["宋朝"]
#KeyError: '宋朝'
del d["唐朝"]
print(d)      #{}
#删除引用对象
# del d
# print(d)    #name 'd' is not defined

4、查询

1)、fromkey,创建值为None的对象

x={1:'张新杰',2:'李彪',3:'刘国臣'}
y=(2,4,6)
#按key创建值为None的字典对象
z=x.fromkeys(y) #有没有x都行
# <class 'dict'> {2: None, 4: None, 6: None}

2)get方法,获取key对应的值,如果key不存在,返回默认值

x={1:'张新杰',2:'李彪',3:'刘国臣'}
#按键查询对应值,这种方法如果key不存在,抛出异常
z=x[3]
# 输出:刘国臣
print(z)
#get方法 获取key对应的值,如果key不存在,返回默认值
z=x.get(8,"我是一个默认的值")

3)、从字典集合中获取key

x={"三国演义":["刘备","曹操","孙权"],"水浒":["西门庆","潘潘","李瓶儿","吴用"]}
#从字典集合中获取key
for k in x:
    print(k)

4)、迭代字典项目

vs=x.values()
#<class 'dict_values'> dict_values([['刘备', '曹操', '孙权'], ['西门庆', '潘潘', '李瓶儿', '吴用']])
#print(type(vs),vs)
for it in x.items():
    print(it)

5)、获取字典对象的key集合

keys=x.keys()
#<class 'dict_keys'> dict_keys(['三国演义', '水浒'])
print(type(keys),keys)

6)获取字典对象的values部分

vs=x.values()
#<class 'dict_values'> dict_values([['刘备', '曹操', '孙权'], ['西门庆', '潘潘', '李瓶儿', '吴用']])
#print(type(vs),vs)

三、字典推导式

#字典推导
# i=8
# s=str(i)
# print(type(s),s)
h={i:[j for j in range(1,i)] for i in range(3,6)}
#输出结果:{3: [1, 2], 4: [1, 2, 3], 5: [1, 2, 3, 4]}
ali=[10,20,30]
bli=["JJ","QQ","KK"]
z=zip(ali,bli)
#迭代zip对象
# for k,v in z:
#     print(k,v)

字典推导式:

#字典推导式
c={k:v  for k,v in z}
print(type(c),c)

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值