Python基础入门—字典dict

字典

  • 字典是一种可变数据类型
  • 点典的元素存储方式是键值对的形式,键值对之间用逗号隔开
  • 键值对的形式形如:key:value
  • 最外层用{}括起来
  • d = {key1 : value1, key2 : value2 }
  • 由于字典是键值对的形式,所以字典是无序的,自然不能切片和索引,而是通过键来取值

键:一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一
值:可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组

字典的定义

  1. dict()来创建
a = dict([('a',1),('b',2),('c',3)])
a 
type(a)

{'a':1,'b':2,'c':3}
dict
  1. 直接赋值{}
b = {'a':1,'b':2,'c':3}
b
type(b)

{'a':1,'b':2,'c':3}
dict

字典对象增加元素

  1. dict[键名] = 值
c = {'a':1,'b':2,'c':3}
c['e'] = 4
e

{'a':1,'b':2,'c':3,'e':4}
  1. dict.setdefault(’新键名‘,值)
d = {'a':1,'b':2,'c':3}
d.setdefault('e',4)
d

{'a':1,'b':2,'c':3,'e':4}
  1. dict1.update(dict2)
    类似列表extend()

字典对象元素删除

常用的5种方法

del 字典名['键名'] 删除指定键值
字典名.pop('键名') 删除键值+弹出值
字典名.popitem() 随机删除一对(一般最后一对)+弹出
字典名.clear() 删除词典内所有元素(和列表对应操作相同)
del 字典名 删除整个词典(和列表对应操作相同)

Examples:

scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95}
scores.clear()
scores 

{}
scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95}
del scores['Mike']
scores

{'Tom': 89, 'Mary': 95, 'Jack': 95}

字典对象的修改

字典名[键] = 新值

字典对象元素的查找

字典名['键名'] 返回改键所对应的值
字典名.get('键名') 返回改键所对应的值
字典名.keys() 返回包含所有键的列表
字典名.values() 返回包含所有值的列表
字典名.items() 返回所有包含键值对的列表

Examples:

scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95}
scores.get('Mary')

95
scores={"Mike":88,"Tom":89,"Mary":95,"Jack":95}
scores.items()

dict_items([("Mike":88),("Tom":89),("Mary":95),("Jack":95)])

字典的深浅拷贝

  1. 浅拷贝
    两个字典的内存地址不同,但内部元素指向同一内容空间

Examples:

a = {'a':1, 'b':(1, 2), 'c':[1, 2, 3], 'd':(1, 2, {1:1}), 'e':{1, 2, 3}}
b = copy(a)
id(a)
id(b)

82254800
82254224 # 不同电脑运行结果不同,但a,b两个字典的id不同

[id(x) for x in a]
[id(x) for x in b]
[30713928, 30712248, 30378392, 30622024, 30621968]
[30713928, 30712248, 30378392, 30622024, 30621968]  
# 内部的item的id 是一样的  说明内部的元素指向同一个值

猜你喜欢

转载自www.cnblogs.com/LAUGH-TALE/p/11646034.html