字典(dict)

字典(dict)

特点:字典是可变的(支持增删改查);无序的(不支持下标操作);

字典的元素:键是不可变的,唯一的;值可以是任何类型的数据,并且可以重复

格式: {

​ 键1:值1,键2:值2,键3:值3,……

}

字典的增删改查

查 --获取字典的值
获取单个值
  1. 字典[key] ----获取字典中指定key对应的值(如果key不存在,会报错)
  2. 字典.get(key) —获取字典中指定key对应的值(如果key不存在,None)
    字典.get(key,默认值) --获取字典中指定key对应的值(如果key不存在,返回默认值)
movie1={
    'name':'战狼',
    'direct':'吴京',
    'actor':'吴京',
    'release_time':'2015',
    'kind':'动作/战争'
}
movie2={
    'name':'沉默的羔羊',
    'direct':'乔纳森戴米',
    'actor':'朱迪福斯特',
    'release_time':'1991',
    'kind':'恐怖'
}
print(movie1['name'])    #战狼
print(movie2['act'])   #KeyError: 'act'
print(movie2.get('name'))  #沉默的羔羊
print(movie2.get('act'))   #None
print(movie2.get('release_time','2020')) #1991
获取多个值

遍历字典

方法一:

for 变量 in 字典:
循环体(变量在循环体中得到的是字典的key)

for x in movie2:
    print(x,movie2[x])

方法二:
for key,value in 字典.item():
循环体(循环体中key取到的所有的键,value取到的是键对应的值)

for key ,value in movie1.items():
      print(key,value)
增/改 —添加键值对/修改键值对的值

字典[key]=值 —当key不存在,就是添加键值对
当key存在,就是修改键值对的值

subject={
    'name':'python',
    'score':'3',
    'class_hour':'20',
    'direction':['数据分析','web后端','爬虫','自动化运维']
}
subject['teacher']='余婷'
print(subject)
subject['score']='4'
print(subject['score'])
删 --删除键值对
  1. del 字典[key] --删除字典key指定对应的键值对
  2. 字典.pop(key) --取出字典中指定key对应的值
  3. 字典.clear() --全部删除
del subject['class_hour']
print(subject)

subject.pop('direction')
print(subject)

subject.clear()
print(subject)

相关操作

  1. 字典不支持加法、乘法和比较大小的运算
print({'a','100'}+{'b','12'})  #TypeError: unsupported operand type(s) for +: 'set' and 'set'
  1. 判断是否相等

    is 判断俩个数据的地址是否相等

print({'a':10,'b':20}=={'b':20,'a':10})  #True
a={'a':10}
b={'a':10}
c=a
print(a==b)   #True
print(a is b)  #False
print(a is c)  #True

  1. in 和 not in

key in 字典 -----判断字典中是否有指定的key

fen={'name':'枫','age':'22','tel':'110'}
print('name' in fen)   #True
print(22 in fen)   #False
  1. 相关函数(len/dict)
len(字典)  --获取字典中键值对的个数
fen={'name':'枫','age':'22','tel':'110'}
print(len(fen))   #3

dict(数据)  --将其他数据转换成字典(数据的要求:1.序列 2.序列中的元素还是序列 3.内部的序列有且只有俩个元素,其中第一个元素是不可变得)
list=['ab',(10,20),['name','张三']]
print(dict(list))  #{'a': 'b', 10: 20, 'name': '张三'}

将字典转换成其他数据

  1. 将字典转换成列表/元组
fen={'name':'枫','age':'22','tel':'110'}
print(list(fen))  #['name', 'age', 'tel']
print(tuple(fen))  #('name', 'age', 'tel')
  1. 将字典转换成字符串
fen={'name':'枫','age':'22','tel':'110'}
print(str(fen))   #{'name': '枫', 'age': '22', 'tel': '110'}
  1. 将列表转换成布尔
fen={'name':'枫','age':'22','tel':'110'}
print(bool({}))  #False
print(bool(fen))  #True
相关方法

1.字典.clear()

fen={'name':'枫','age':'22','tel':'110'}
fen.clear()
print(fen)  #{}

2.字典.copy()

fen={'name':'枫','age':'22','tel':'110'}
fen1=fen.copy()
print(fen1,id(fen1),id(fen))

3.dict.fromkeys(序列,默认值=None) --创建一个新的字典,序列中所有的元素回作为新字典的key,默认值是所有key对应的值

new_dict=dict.fromkeys('abc')
print(new_dict)  #{'a': None, 'b': None, 'c': None}

new_dict=dict.fromkeys(['name','age','sex'],0)
print(new_dict)   #{'name': 0, 'age': 0, 'sex': 0}

new_dict=dict.fromkeys(['name','age','sex'],['中山',19,'男'])
print(new_dict)  #{'name': ['中山', 19, '男'], 'age': ['中山', 19, '男'], 'sex': ['中山', 19, '男']}

4.字典.items() 字典.keys() 字典.values()

fen={'name':'枫','age':'22','tel':'110'}
print (fen.items ())  #dict_items([('name', '枫'), ('age', '22'), ('tel', '110')])
print (fen.keys ())   #dict_keys(['name', 'age', 'tel'])
print (fen.values ())  #dict_values(['枫', '22', '110'])

5.字典.setdefault(key,value) --在字典中添加键值对(单纯的添加键值对,不会修改)

fen={'name':'枫','age':'22','tel':'110'}
fen.setdefault('score',98)
print(fen)  #{'name': '枫', 'age': '22', 'tel': '110', 'score': 98}
fen.setdefault('name','小花')
print(fen)

6.字典1.update(字典2) --将字典2中的键值对添加到字典1中

fen={'name':'枫','age':'22','tel':'110'}
y={'a': None, 'b': None, 'c': None}
fen.update(y)
print(fen)  #{'name': '枫', 'age': '22', 'tel': '110', 'a': None, 'b': None, 'c': None}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值