dictionary,字典,无序的列表——用于查询表的制作
dictionary的基本操作:
# -*- coding: utf-8 -*- life = { # 创建dictionary 'baby': '0-3', 'little_child': '4-7', 'child': '8-12' } print life['baby'] # dict中元素的输出和列表相似 life['teenage'] = '13-17' # 元素的添加 life['adult'] = '18-60' print life del life['adult'] # 元素的删除 print life print "The progress of life is %s,%s,%s." % ( life['baby'], life['little_child'], life['child'] )
———————————————————————华丽——————————————的————————————————分割——————————————————————————
dictionary的函数:
1. dict.items()
以(键,值)的方式输出dict
for lives,period in life.items(): # dict.items的用法——创建lives和period两个变量,分别用作life这个字典中“:”前后的变量名 print "Age between %s belongs to %s." % (period, life) print lives,period # .items()语句中创建的是全局变量!
2. dict.get()
period_ = life.get("Old", "Not exist.") # get函数得到的第一个参数在dict中存在,返回它的值;否则返回逗号之后的值 print "The new period is ", period_ # get得到的值并不会赋值到dict中,仅临时存在 print life period__ = life.get('babies', '0-4') print period__,"\n",life
3. repr();str();"" 三者输出的异同
repr和“”输出一致,适合python阅读
str()的适用于输出,输出可读性好的字符串
4. dict.fromkeys(s,v)
dict = dict.fromkeys(("keys",), 'this is the keyboards') print dict dict = dict.fromkeys('keys','this is the keyboards') # 少了逗号,元素变成了'k','e','y','s' print dict keywords = "key1","key2","key3" content = "All the content is the same." dict = dict.fromkeys(keywords,content) # .fromkeys(s, v)创建的列表中,键为s, 值为v print dict
5. dict.has_key()
用于判断dict中是否有指定的键
life = { 'baby': '0-3', 'little_child': '4-7', 'child': '8-12' } print "Does life has 'baby'?", life.has_key('baby') print "Does life has 'old'?", life.has_key('old')
6. dict.keys()&dict.values()&dict.items()
分别返回dict的键和值
#? dict.iteritems() dict.iterkeys() dict.itervalues()
7. dict.pop()&dict.popitem()
# -*- coding utf-8 -*- life = { 'baby': '0-3', 'little_child': '4-7', 'child': '8-12' } life.popitem() print life() life.pop('baby','0-3') #同时输入键和值 print life life.pop('child') #仅输入键 print life life.popitem() # .popitem不需要参数,pop由python决定的一个参数。和help中的提示不符,一脸懵逼 print life
8. dict.setdefualt(k,d)
# -*- coding utf-8 -*- life = { 'baby': '0-3', 'little_child': '4-7', 'child': '8-12' } life.setdefault('key,','key content') #键不存在时,设置键位定义的默认值 print life life.setdefault('baby','0') #键存在时,跳过定义 print life
9. dict.update(E)
# -*- coding: utf-8 -*- life = { 'baby': '0-3', 'little_child': '4-7', 'child': '8-12' } listone = 'whos', 'your', 'daddy' dictone ={ 'first': 'greed', 'two':'is', 'three':'good' } print listone,"\n",dictone life.update(dictone) #update dictone的键和值到life print life life.update(listone) # 出错了!原因未知 print life
10. dict.viewitems()
dict.viewkeys()
dict.viewvalues()
遍历dict的内容,键和值
11. dict.clear()
===========================================================================================================
总结:
dictionary的创建:
1. NAME = {
key1:value1,
key2:value2,
.....
keyn:valuen
}
2. NAME = NAME.fromkeys(keys, content)
dictionary的查阅和遍历
查阅:
1. NAME【key】
2. NAME.items()
遍历:
1. NAME.keys&NAME.values&NAME.items
2. NAME.viewkeys&NAME.viewvalues&NAME.viewitems
dictionary的赋值
1. NAME【key】 = value
2. NAME.setdefault(k,d)
3. NAME.update(E)
dictionary值的判断和输出
判断
1. NAME.has_key(k)
输出
1. NAME.pop(k)
2. NAME.popitem()
3. NAME.get(k,d)