辞書、辞書の練習


辞書
一、辞書の紹介
(1)辞書がpythonで唯一のマッピングタイプ(key-value)(2)辞書のvalueは可変であるが、辞書のkeyは可変であり、keyは一意であり、重複するkey値は存在しない.1つの辞書で異なるタイプのキー値を使用できます.
a = {1:'a', 2:'b', 3:'c'}     #    
In [2]: type(a)               #   
Out[2]: dict

In [3]: a[1]                    #  key      
Out[3]: 'a'

二、辞書の方法
In [4]: a = {1:'a', 2:'b', 3:'c'}

In [5]: a.keys()             #key()    key
Out[5]: [1, 2, 3]

In [6]: a.values()          # values()           value
Out[6]: ['a', 'b', 'c']

In [8]:  a.get(1)            #    key     
Out[8]: 'a'

In [10]:  a.get('n',2)     #a     n key,        2
Out[10]: 2

In [11]: a.has_key(1)   #has_key()              key  
Out[11]: True

In [12]: a.items()           #items()               key-value  ,        ,             
Out[12]: [(1, 'a'), (2, 'b'), (3, 'c')]

In [13]: a.iteritems()      #iteritems()    items()   ,          ,     
Out[13]: 

In [14]: b=a.copy()       #copy()  a  
In [15]: b
Out[15]: {1: 'a', 2: 'b', 3: 'c'}

In [16]: a.pop(3)         #pop()  key  3  
Out[16]: 'c'
In [17]: a
Out[17]: {1: 'a', 2: 'b'}

In [48]: a
Out[48]: {'age': '18', 'name': 'jack'}
In [49]: del a['age']    #      

In [50]: a
Out[50]: {'name': 'jack'}

In [18]: a.update(b)    #update()        
In [19]: a
Out[19]: {1: 'a', 2: 'b', 3: 'c'}

In [20]: a.clear()        #       
In [21]: a
Out[21]: {}

In [40]: del a             #      

In [22]: a = {1:'a', 2:'b', 3:'c'}
In [25]: a.setdefault(1)         #setdefault()    get()   ,       key   value  , key          
Out[25]: 'a'

In [26]: a.setdefault(4, 'd')   # key 4     ,    ,    a 
Out[26]: 'd'
In [27]: a
Out[27]: {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
In [33]: for k,v in a.items():
    print '%s %s' %(k,a[k])  
1 a
2 b
3 c
4 d

In [36]: for k in a.keys():   #  key
    print k
   ....:     
1
2
3
4

fromkeys()メソッド構文:
dict.fromkeys(seq[, value]))
seq --       。
value --     ,      (seq)  。
#!/usr/bin/python

seq = ('name', 'age', 'sex')

dict = dict.fromkeys(seq)
print "New Dictionary : %s" %  str(dict)

dict = dict.fromkeys(seq, 10)
print "New Dictionary : %s" %  str(dict)

  :
New Dictionary : {'age': None, 'name': None, 'sex': None}
New Dictionary : {'age': 10, 'name': 10, 'sex': 10}

辞書の練習
インデントには4つのスペースが必要です.
[root@test-7 python]# vim 1.py 
#!/usr/bin/python
info={}
name = raw_input("Please input name: ")
age = raw_input("Please input age: ")
gender = raw_input("Please input (M/F): ")
info['name'] = name
info['age'] = age
info['gender']=gender
for k,v in info.items():
    print '%s :%s' % (k,v)
print 'main end'

  :[root@test-7 python]# python 1.py 
Please input name: jack
Please input age: 18
Please input (M/F): M
gender :M
age :18
name :jack
main end