Python常用语法——dictionary(字典)部分(完善中)

1、Dictionary(字典)是什么

字典是另一种可变容器模型,且可存储任意类型对象

字典的每个键值key->value对用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号{}

例如:

d = {key1 : value1, key2 : value2 }

2、创建字典

直接创建字典

dic1 = { 'Author' : 'Python当打之年' , 'age' : 99 , 'sex' : '男' }

使用dict()函数创建

dic3 = dict( Author = 'Python当打之年', age = 99, sex = '男')

由列表转化为字典

lst = [('Author', 'Python当打之年'), ('age', 99), ('sex', '男')]
dic2 = dict(lst)

使用dict()和zip()函数创建

list1 = ['Author', 'age', 'sex']
list2 = ['Python当打之年', 99, '男']
dic4 = dict(zip(list1, list2))

3、访问字典内容

直接访问

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

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

使用get()方法读取

#参数key:字典中要查找的键,default:如果指定的键不存在时,返回该默认值
dict.get(key, default=None)
dict = {'Name': 'Runoob', 'Age': 27}
print ("Age 值为 : %s" %  dict.get('Age'))

输出结果为:

Age 值为 : 27
Sex 值为 : NA

修改字典内容

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
#修改内容
dict['Age'] = 8
#添加内容
dict['School'] = "菜鸟教程"
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

4、删除字典内容

del删除键值对

#删除键 'Name',会删除掉这个键值对
del dict['Name']

del删除字典

#删除字典
del dict

pop()方法删除键值对

site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}
pop_obj=site.pop('name')

5、遍历字典

即使遍历字典时,键值对的返回顺序也与存储顺序不同。

遍历所有键值对——items()

#items()方法返回一个键值对列表
for key,value in user.items():
    print("key:"+key)
    print("val:"+value)

遍历所有键——keys()

#keys()方法返回一个键值列表
for key in user.keys():
    print("key:"+key)

另外,由于遍历字典的时候,会默认遍历所有的键,因此,如果将上述代码修改为如下这样,其输出不变:

for key in user:
    print("key:"+key)

另外,由于keys()方法实际上是返回一个队列,因此其并非只能用于遍历,还可以用来判断元素是否在列表中:

if 'peter' not in favorite_drink.keys():
	print("Peter, say your favorite drink!")

如果需要按顺序遍历字典中的所有键,还可以使用函数sorted()来实现:

for key in sorted(user.keys()):
    print("key:"+key)

遍历所有值——values()

for value in user.values():
    print("value:"+value)

但是这种遍历所有值的做法,并没有考虑值重复的情况(键不会重复,因此并没有讨论这种情况)
为了剔除值的重复项,可以使用集合(set),集合类似于列表,但是每个元素都必须是独一无二的:

for value in set(user.values()):
    print("value:"+value)

6、常用的函数/算法

posted @ 2021-08-19 22:53  Yu_tiann  阅读(305)  评论(1编辑  收藏  举报