Python学习笔记10_字典(Dictionary)

Python学习笔记10_字典(Dictionary)

  • 字典是另一种可变容器模型,且可存储任意类型对象。
  • 字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {}
  • 字典的值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
  • 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被存储
  • 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
  • 字典的格式如下:
d = {key1 : value1, key2 : value2, key3 : value3 }

1、字典创建

  • 键必须是唯一的,但值则不必。
  • 值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
1.1、空字典创建

1)使用大括号 { } 创建空字典:

# 使用大括号 {} 来创建空字典
emptyDict = {}

2)使用内建函数 dict() 创建字典:

# 使用内建函数dict()创建空字典:
emptyDict = dict()

2、访问字典里的值

1)把相应的键放入到方括号中

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("tinydict['Name']: ", tinydict['Name'])

2)如果用字典里没有的键访问数据,会报错:

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("tinydict['Alice']: ", tinydict['Alice'])


# 报错内容
Traceback (most recent call last):
  File "test.py", line 5, in <module>
    print ("tinydict['Alice']: ", tinydict['Alice'])
KeyError: 'Alice'

3)使用字典的 get 方法

person = {'name': 'zhangsan', 'age': 18,'x':'y'}
print(person.get('name'))


# 如果 key 不存在,会默认返回 None,而不报错
print(person.get('whit'))	# None


# 如果 key 不存在,可以返回给定值
print(person.get('geter','falge'))	# falge

3、修改字典

1)向字典添加新内容的方法是增加新的键/值对,通过键添加键值对

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
# 使用key修改对应的value
tinydict['Age'] = 8      

# 添加新的键值对
tinydict['day'] = "Wed"  

2)使用字典的 update 方法合并两个字典

person1 = {'name': 'zhangsan', 'age': 18}
person2 = { 'heighe': 185, 'whit': 65}
person1.update(person2)
print(person1)		

4、字典的删除操作

  • 使用 del() 方法删除单一的元素
  • 使用 clear() 方法清空字典
  • 使用 del() 方法删除整个字典
  • 使用字典的 pop方法,把key对应的键值对删除了,并返回value值
  • 使用字典的popitem()方法,删除一个键值对,并返回一个由该键值对组成元素的元组
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
del tinydict['Name'] # 删除键 'Name'
tinydict.clear()     # 清空字典
del tinydict         # 删除字典


person = {'name': 'zhangsan', 'age': 18, 'heighe': 185, 'whit': 65}
print(person.pop('age'))	# 把key对应的键值对删除了,并返回value值
print(person.popitem())		# 删除一个键值对,并返回一个由该键值对组成元素的元组

5、字典的遍历

person = {'name': 'zhangsan', 'age': 18, 'heighe': 185, 'whit': 65}
# 字典遍历
# 方法一:
for k in person:  # k 获取的是 key
    print(k, ':', person[k])
    
    
# 方法二:
print(person.keys())  # dict_keys(['name', 'age', 'heighe', 'whit'])
for k in person.keys():  # keys() 方法是获取字典的key
    print(k, ':', person[k])
    
    
# 方法三:
print(person.values())  # dict_values(['zhangsan', 18, 185, 65])
for v in person.values():  # 使用 values() 方法获取字典的value
    print(v)  # 只能打印 value
    
    
# 方法四:
print(person.items())	# items() 方法获取的是字典的键值对
# dict_items([('name', 'zhangsan'), ('age', 18), ('heighe', 185), ('whit', 65)])
for k, v in person.items():  # 利用了拆包方法
    print(k, ':', v)
'''常用方法一和方法四'''

6、字典推导式

# 交换key,value
person = {'name': 'zhangsan', 'age': 18, 'heighe': 185, 'whit': 65}

# 方法一:
person1 = {}
for k,v in person.items():
    person1[v] = k
person = person1


# 方法二:推导式
person={v:k for k,v in person.items()}  # 交换key和value
print(person)

7、字典内置函数&方法

函数描述
len(dict)计算字典元素个数,即键的总数。
str(dict)输出字典,可以打印的字符串表示。
type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。
函数描述
dict.clear()删除字典内所有元素
dict.copy()返回一个字典的浅复制
dict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict.get(key,default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
key in dict如果键在字典dict里返回true,否则返回false
dict.items()以列表返回键值对的视图对象
dict.keys()返回键的视图对象
dict.setdefault(key,default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict1.update(dict2)把字典dict2的键/值对合并到dict1里
dict.values()返回值的视图对象
pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem()返回并删除字典中的最后一对键和值。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值