#7–1. 字典方法。哪个字典方法可以用来把两个字典合并到一起?
#可以通过update来更新。
>>> dict1 = {1:'hello',2:'world'}
>>> dict2 = {2:'i',3:'i'}
>>> dict1.update(dict2)
>>> dict1
{1: 'hello', 2: 'i', 3: 'i'}
>>>
#7–3. 字典和列表的方法。
#(a) 创建一个字典,并把这个字典中的键按照字母顺序显示出来。
#(b) 现在根据已按照字母顺序排序好的键,显示出这个字典中的键和值。
#(c)同(b),但这次是根据已按照字母顺序排序好的字典的值,显示出这个字典中的键和值。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
dict1 = {"a":"d","b":"c","c":"b","d":"a"}
for i in sorted(dict1):
print "key:", i," and value:", dict1[i]
for value in sorted(dict1.values()):
for key in dict1.keys():
if dict1[key] == value:
print "key:", key, "and value:", value
#7-4. 建立字典。给定两个长度相同的列表,比如说,列表[1, 2, 3,...]和['abc', 'def','ghi',...],用这两个列表里的所有数据组成一个字典,像这样:{1:'abc', 2: 'def', 3: 'ghi',...}
#!/usr/bin/env python
#-*- coding:utf-8 -*-
dict1 = {}
keys = [1, 2, 3, 4, 5, 6]
values = ["Hello", "world", "I", "love", "my", "python"]
for i in range(len(keys)):
dict1[keys[i]] = values[i]
print dict1
#7-7. 颠倒字典中的键和值。用一个字典做输入,输出另一个字典,用前者的键做值,前者的值做键。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
dict1 = {1:"hello",2:"world"}
dict2 = {}
for key,value in dict1.items():
dict2[value] = key
print dict1
print dict2
#7-8. 人力资源。创建一个简单的雇员姓名和编号的程序。让用户输入一组雇员姓名和编号。你的程序可以提供按照姓名排序输出的功能,雇员姓名显示在前面,后面是对应的雇员编号。附加题:添加一项功能,按照雇员编号的顺序输出数据。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
def dit():
dict1 = {}
while True:
inf = raw_input("请输入姓名和编号,格式(姓名:编号)(q结束):")
if inf == "q":
break
num = inf.split(":")
dict1[num[0]] = num[1]
for key in sorted(dict1.keys()):
print "姓名:%s,编号:%s" %(key, dict1[key])
for value in sorted(dict1.values()):
for key in dict1.keys():
if dict1[key] == value:
print "编号:%s,姓名:%s" % (key, value)
dit()
#7–10. 加密。
(a) 用上一个练习的思路编写一个"rot13"翻译器。"rot13"是一个古老而又简单的加密方法,它把字母表中的每个字母用其后的第13 个字母来代替。字母表中前半部分字母将被映射到后半部分,而后半部分字母将被映射到前半部分,大小写保持不变。举例来说,'a'将被替换为'n','X'将被替换为'K'; 数字和符号不进行翻译。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import string
numlower = ""
numupper = ""
numlower = string.lowercase * 2
numupper = string.uppercase * 2
def code_rot13(strTemp):
newstring = ""
for i in strTemp:
if i.islower():
newstring += numlower[numlower.find(i) + 13]
else:
newstring += numupper[numupper.find(i) + 13]
return newstring
if __name__ == '__main__':
while True:
string = raw_input("Please enter the string(-1 to quit):")
if string == '-1':
break
print "The code rot13 is:", code_rot13(string)
print "the decode rot13 is", code_rot13(code_rot13(string))