Python基础之字典

一、特点

(1) 将一系列键值对用逗号分隔开,用大括号{}括起来。
(2) 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组(列表不行)。
(3) 字典是一种动态结构,可随时在其中增加、删除或修改键值对。

二、基础知识

1. 创建字典

1.1 创建空字典

方法一:直接创建

emptydict = {}

方法二:使用dict函数创建

emptydict = dict()

1.2 创建带有元素的字典

方法一:

dic1={'name':'wj','age':'18'}
print(dic1)      # {'name': 'wj', 'age': '18'}

方法二:

dic2=dict(name='wj',age='18')
print(dic2)      # {'name': 'wj', 'age': '18'}

方法三:

dic3=dict([('name','wj'),('age','18')])
print(dic3)      # {'name': 'wj', 'age': '18'}

方法四:zip()函数

a=['name','age']
b=['wj','18']
print(dict(zip(a,b))) # {'name': 'wj', 'age': '18'}

2. 访问字典

字典是集合类型,不是序列类型,因此没有索引下标的概念,更没有切片的说法。
但是,与list类似,字典采用把相应的键放入方括号内获取对应值的方式取值。当key值不存在时,则报错。

dic1={'name':'wj','age':'18'}
print(dic1['age'])       # 18
print(dic1['gender'])    # KeyError: 'gender'

3. 增加和修改

由于一个key只能对应一个值,所以,多次对一个key赋值,后面的值会把前面的值冲掉。

dic1={'name':'wj','age':'18'}
dic1['eat']='apple'
print(dic1)  # {'name': 'wj', 'age': '18', 'eat': 'apple'}

dic1['eat']='food'
print(dic1)  # {'name': 'wj', 'age': '18', 'eat': 'food'}

4. 删除和清空

删除字典元素

dic1={'name':'wj','age':'18'}
del dic1['age']
print(dic1)       # {'name': 'wj'}

删除整个字典

dic1={'name':'wj','age':'18'}
del dic1
print(dic1)    # NameError: name 'dic1' is not defined

清空字典

dic1={'name':'wj','age':'18'}
dic1.clear()
print(dic1)       # {}

5. 字典相关函数

5.1 dict.keys()

以列表返回字典中所有的键

dic1={'name':'wj','age':'18'}
print(dic1.keys())     # dict_keys(['name', 'age'])

5.2 dict.values()

以列表返回字典中所有的值

dic1={'name':'wj','age':'18'}
print(dic1.values())   # dict_values(['wj', '18'])

5.3 dict.items()

返回可遍历的(键,值)元组数组

dic1={'name':'wj','age':'18'}
print(dic1.items())    
# dict_items([('name', 'wj'), ('age', '18')])

5.4 dict.get(key,default=None)

返回指定键的值,如果值不在字典中则返回默认值None(可修改)

dic1={'name':'wj','age':'18'}
print(dic1.get('age'))       # 18
print(dic1.get('gender'))    # None

5.5 dict.update(dict2)

将dict2的键值对更新到dict里

dict={'name':'wj','age':'18'}
dict2={'color':'white'}
dict.update(dict2)
print(dict)    
# {'name': 'wj', 'age': '18', 'color': 'white'}

5.6 dict.fromkeys(seq,vals)

创建一个新字典,以序列 seq 中元素做字典的键,vals为字典所有键对应的初始值

seq=('python','java','SQL')
values=(11,12,13)
print(dict.fromkeys(seq,values))
# {'python': (11, 12, 13), 'java': (11, 12, 13), 'SQL': (11, 12, 13)}

5.7 dict.pop(key)

除字典给定键key及其对应的值,返回值为被删除的值

dic1={'name':'wj','age':'18'}
print(dic1.pop('name'))     # wj
print(dic1)                 # {'age': '18'}

5.8 dict.popitem()

返回并删除字典中最后一对键和值

dic1={'name':'wj','age':'18'}
print(dic1.popitem())    # ('age', '18')
print(dic1)              # {'name': 'wj'}

三、字典推导式

li=['red','yellow','green']
dic={li.index(i):i for i in li}
print(dic)
# {0: 'red', 1: 'yellow', 2: 'green'}
dic1 = {"0":0,"1":0,"2":2}
dic2 = {k:v for k,v in dic1.items()}
print(dic2)
# {'0': 0, '1': 0, '2': 2}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值