python语言基础 - 字典介绍及常见操作总结

字典的介绍

相信大家在上学的时候都用过新华字典,英汉字典,当有不认识的字或不会写的字的时候查下字典就能解决。不认识的单词查下英汉字典就能得到翻译,即方便好用又能长知识,一举两得。分析一下,不管是新华字典还是英汉字典,它们都有着一个共同的特点,就是字典中的内容都有着一个映射关系。比如通过拼音“zhang”就能得到汉字“张”,再比如通过英文单词“hello”就可以得到它的中文翻译“你好”。

那么在我们的编程语言python中同样也有着这么一种语法。让我们可以通过一个值就能找到它的映射值。这就是python中的字典。

python中的字典是一种可变容器的模型,可以存储任意类型的数据。字典由一对花括号和若干个键值对组成,每个键值对用冒号分割,不同对之间以逗号分隔,所有的键值对都包含在花括号中。字典格式如下:

d = {key1:value1, key2:value2, key3:value3}

注意:字典中的键必须是唯一的,并且键的类型必须是不可变的数据类型,如字符串,数字或元组。但值可以是任意数据类型且不必唯一。以英汉字典为例:

#正确的定义
en_ch = {'hello':'你好','hi':'你好', 'world':'世界', 1:'one',(1,2):['one','two']}

#错误的定义
en_ch = {[1,2]:'one,two'}

如上第二种方式是错误的定义,因为字典中键的数据类型必须是不可变的。而列表是一个内容可变的数据类型,所以这样定义程序会抛出异常。

字典中值的访问

字典中值的访问主要有两中方式

  • 通过中括号和键的名称来访问,语法如下:字典名[键名]
en_ch = {'hello':'你好','hi':'你好', 'world':'世界', 1:'one',(1,2):['one','two']}

print(en_ch['hello'])
print(en_ch[1])

#输出结果
你好
one

这种访问方式的缺点就是,当键在字典中不存在时则会抛出KeyError的异常

  • 通过get方法来访问,字典名.get(键名)
en_ch = {'hello':'你好','hi':'你好', 'world':'世界', 1:'one',(1,2):['one','two']}

print(en_ch.get('hello'))
print(en_ch.get(1))

#输出结果
你好
one

用get访问,当键在字典中不存在时不会报错,而是返回None值,get方法还可以接收一个默认值参数,即当键不存在时,返回串给它的默认值。如en_ch.get('haha','哈哈')

字典的常用操作

修改元素

字典中每个元素的数据都是可以修改的, 只要通过key找到这个元素然后重新赋值即可实现值的修改,语法如下:dic[key]=value

dic = {'one':'1','two':'2'}

print(dic['one'])
dic['one'] = '一'
print(dic['one'])

#输出结果:
修改前:1
修改后:一

添加元素

字典中添加元素的方式跟修改元素是一样的,但需只要注意的是所要添加的key必须在字典中是不存在的,否则就变成了修改元素。

dic = {'one':'1','two':'2'}

#key在字典中已经存在,这样则是修改元素,而不是新增
dic['one'] = '3'

#key在字典中不存在,则是添加新的元素
dic['three'] = 3

print(dic)

#输出结果:
{'one':'3','two':'2','three':3}

删除元素

删除元素主要有以下2中方式:

  • del方式删除,通过del 字典名[键名]可以删除字典中指定的元素,如果是del 字典名则是将整个字典删除,这种方式删除后整个字典将不能访问
dic = {'one':'1','two':'2'}

#删除指定元素
del dic['one']
print(dic)
#输出结果
{'two':'2'}

#删除整个字典
del dic
print(dic)
#输出结果:
抛出异常:dic not defined
  • clear()方法清空字典,这种方式清空字典后,字典仍可访问,但字典是空的
dic = {'one':'1','two':'2'}

dic.clear()

print(dic)

#输出结果
{}

字典中常用函数

len()

用于测量字典的长度,即字典中键值对的个数,用法:len(字典名)

dic = {'one':'1','two':'2','three':'3'}
print(len(dic))

#输出结果
3

keys()

返回字典中所有的键,返回值类型为列表类型,用法:字典名.keys()

dic = {'one':'1','two':'2','three':'3'}

print(dic.keys())

#输出结果
['one','two','three']

values()

返回字典中所有的值,返回值类型为列表类型,用法:字典名.values()

dic = {'one':'1','two':'2','three':'3'}

print(dic.values())

#输出结果
['1','2','3']

items()

返回字典中所有的键值对,返回值类型依然为列表类型,但列表中的元素是包含了键和值的元组类型,用法:字典名.items()

dic = {'one':'1','two':'2','three':'3'}

print(dic.items())

#输出结果
[('one','1'),('two','2'),('three','3')]

has_key(key)

用于检索key在字典中是否存在,如果存在返回True否则返回False,用法:字典名.has_key(key)

dic = {'one':'1','two':'2','three':'3'}

print(dic.has_key('one'))
print(dic.has_key('four'))

#输出结果
True
False

 

猜你喜欢

转载自blog.csdn.net/lixiaosenlin/article/details/91869705
今日推荐