python学习笔记七——字典

4.3 字典结构

  字典是Python中重要的数据类型,字典的由“键-值”对组成的集合,字典中的“值”通过“键”来引用。

4.3.1 字典的创建

  字典由一系列的“键-值”(key-value)对组成,“键-值”对之间用“逗号”隔开,并且被包含在一堆花括号中。字典与java语言中的HashMap类作用类似,都是采用“键-值”对映射的方式存储数据。

  字典的创建格式如下:

dictionary={key1:value1, key2:value2,...}

  其中,key1、key2等表示字典的key值,value1、value2等表示字典的value值。

  如果需要创建一个空的字典,只需要一对花括号即可,代码如下:

dictionary = {}

  字典的创建和访问。

dict={"a":"apple","b":"banana","g":"grape","o":"orange"}
print(dict)
print(dict["a"]) #打印建a对应的值

注意:字典的“键”是区分大小写的。例如,dict["a"]与dict["A"]分别指向不同的值,应区别对待。

  创建字典时,也可以使用数字作为索引。

dict={1:"apple",2:"banana",3:"grape",4:"orange"}
print(dict)
print(dict[2]) #打印建2对应的值,不用双引号
[root@Dannyserver danny]# python a.py 
{1: 'apple', 2: 'banana', 3: 'grape', 4: 'orange'}
banana

  print()的使用非常灵活,也可以在print()中使用字典。下面示例字典在print()中的使用。

print("%s,%(a)s,%(b)s" %{"a":"apple", "b":"banana"})
[root@Dannyserver danny]# python a.py 
{'a': 'apple', 'b': 'banana'},apple,banana

解释:其中隐式的创建了字典{“a”:"apple","b":"banana"}。这个字典用来定制print()中的参数列表。“%s”输出这个字典的内容,"%(a)s"获取字典中对应的key值“a”的value值,“%(b)s”获取字典中对应key值"b"的value值。

4.3.2 字典的访问

  字典的访问与元组、列表有所不同,元组和列表是通过数字索引来获取对应的值,而字典是通过key值获取相应的value值。访问字典格式如下:

value = dict[key]

  字典的添加、删除和修改非常简单,添加或修改操作只需要编写一条赋值语句,例如:

dict["x"] = "value"

  如果索引x不在字典dict的key列表中,字典dict将添加一条新的映射(x:value);如果索引x在字典dict的key列表中,字典dict将直接修改索引x对应的value值

  字典与列表不同,字典并没有remove()操作。字典元素的删除可以调用del()实现,del()属于内建函数,直接调用即可。列表可以调用pop()弹出列表中的一个元素,字典也有一个pop(),该方法的声明和作用与列表的pop()有些不同。pop()的声明如下所示。

D.pop(k[,d])  -> v

pop()必须指定参数才能删除对应的值。其中,参数k表示字典的索引,如果字典D中存在索引k,返回值v等于D[k];如果字典D中没有找到索引k,返回值为d。

  如果需要清除字典中所有的内容,可以调用字典的clear()。示例如下:

#字典的添加、删除、修改操作
dict={"a":"apple","b":"banana","g":"grape","o":"orange"}
dict["w"]="watermelon" #添加字典元素 (有则改,无则加)  
del(dict["a"]) #删除字典中键为a的元素
dict["g"]="grapefruit"   #修改字典中键为g的值
print(dict.pop("b"))    #弹出字典中键为b的元素
print(dict)
dict.clear()    #清除字典中所有元素
print(dict)
[root@Dannyserver danny]# python a.py 
banana
{'g': 'grapefruit', 'o': 'orange', 'w': 'watermelon'}
{}
>>> dict.pop("N","没有")
'没有'

 

 由于字典是无序的,因此字典中没有append()、remove()等方法。如果需要向字典插入新的元素,可以调用setdefault()。

  字典的遍历有多种方式,最直接的方式是通过"for...in..." 语句完成遍历的任务。例:

#!/usr/bin/python
dict = {'name': 'danny', 'ago': 29, 'gender': 'Man', 'address': '四川省南充市', 'D': 'Hello world!'}
for i in dict:
        print("dict[%s]" %i,dict[i])
[root@xxx python]# python dictionary.py 
dict[name] danny
dict[ago] 29
dict[gender] Man
dict[address] 四川省南充市
dict[D] Hello world!

 注意:语句循环访问字典dict,变量i获取的是字典dict的key值,并没有直接获取value值。因此打印输出时,通过dict[i]来获取value值

  此外,还可以使用字典的items()实现字典的遍历操作,items()返回一个由若干元组组成的列表。例:

dict={"a":"apple","b":"banana","c":"grape","d":"orange"}
print(dict.items())
[root@Dannyserver danny]# python a.py 
dict_items([('a', 'apple'), ('b', 'banana'), ('c', 'grape'), ('d', 'orange')])

  可见,items()把字典中每对key和value组成一个元组,并把这些元组存放在列表中返回。下面将使用字典item()实现字典的遍历。

dict={"a":"apple","b":"banana","c":"grape","d":"orange"}
for(k,v) in dict.items():  #变量k和v分别与字典dict中的key和value值对应
        print("dict[%s]" %k,v)
[root@Dannyserver danny]# python a.py 
dict[a] apple
dict[b] banana
dict[c] grape
dict[d] orange

  除了能采用字符串作为字典的value值,元组、列表、字典都可以作为字典的value值。使用元组、列表或字典作为value值创建字典,称为混合型字典。格式如下:

dict={"key1":(tuple), "key2":[list], "key3":[dictionary] ...}

示例:

dict={"a":("apple",),"g":["grape","grapefruit"],"bo":{"b":"banana","o":"orange"}}
print(dict["a"])
print(dict["a"][0])
print(dict["g"])
print(dict["g"][1])
print(dict["bo"])
print(dict["bo"]["b"])
[root@Dannyserver danny]# python a.py 
('apple',)
apple
['grape', 'grapefruit']
grapefruit
{'b': 'banana', 'o': 'orange'}
banana

 

posted @ 2018-01-08 18:23  叮伱格斐呃  阅读(317)  评论(0编辑  收藏  举报
Live2D