dict1 = {'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 96, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}app
1) 将该字典按照ASCII码的值排序ide
2) 有一个字母的ASCII错了,修改成正确的值,并从新排序code
用最简洁的代码,本身生成一个大写字母 A-Z 及其对应的ASCII码值的字典dict2(使用dict,zip,range方法)排序
一、将该字典按照ASCII码的值排序ip
In [312]: sorted(dict1.items())ci
Out[312]:string
[('a', 97),it
('b', 98),class
('c', 99),import
('d', 100),
('e', 101),
('f', 102),
('g', 103),
('h', 104),
('i', 105),
('j', 106),
('k', 107),
('l', 108),
('m', 109),
('n', 110),
('o', 96),
('p', 112),
('q', 113),
('r', 114),
('s', 115),
('t', 116),
('u', 117),
('v', 118),
('w', 119),
('x', 120),
('y', 121),
('z', 122)]
二、将该字典按照ASCII码的值排序
In [318]: dict1['o'] = 111
In [319]: dict1
Out[319]:
{'0': 111,
'a': 97,
'b': 98,
'c': 99,
'd': 100,
'e': 101,
'f': 102,
'g': 103,
'h': 104,
'i': 105,
'j': 106,
'k': 107,
'l': 108,
'm': 109,
'n': 110,
'o': 111, # 已修改
'p': 112,
'q': 113,
'r': 114,
's': 115,
't': 116,
'u': 117,
'v': 118,
'w': 119,
'x': 120,
'y': 121,
'z': 122}
三、用最简洁的代码,本身生成一个大写字母 A-Z 及其对应的ASCII码值的字典dict2(使用dict,zip,range方法)
In [383]: str_upper = [key for key in string.uppercase]
In [384]: str_upper
Out[384]:
['A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
'O',
'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
'Z']
In [385]: str_ascii = [ord(str_upper[0]) + value for value in range(len(str_upper))]
In [386]: str_ascii
Out[386]:
[65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90]
In [387]: dict(zip(str_upper, str_ascii))
Out[387]:
{'A': 65,
'B': 66,
'C': 67,
'D': 68,
'E': 69,
'F': 70,
'G': 71,
'H': 72,
'I': 73,
'J': 74,
'K': 75,
'L': 76,
'M': 77,
'N': 78,
'O': 79,
'P': 80,
'Q': 81,
'R': 82,
'S': 83,
'T': 84,
'U': 85,
'V': 86,
'W': 87,
'X': 88,
'Y': 89,
'Z': 90}
四、将dict2与第一题排序后的dict1合并成一个dict3
In [395]: dict1 = {'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105,
...: 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 111, 'n': 110, 'q': 113, 'p': 1 ...: 12, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z ...: ': 122}
In [396]: dict2.update(dict1)
In [397]: dict3 = dict2
In [398]: dict3
Out[398]:
{'A': 65,
'B': 66,
'C': 67,
'D': 68,
'E': 69,
'F': 70,
'G': 71,
'H': 72,
'I': 73,
'J': 74,
'K': 75,
'L': 76,
'M': 77,
'N': 78,
'O': 79,
'P': 80,
'Q': 81,
'R': 82,
'S': 83,
'T': 84,
'U': 85,
'V': 86,
'W': 87,
'X': 88,
'Y': 89,
'Z': 90,
'a': 97,
'b': 98,
'c': 99,
'd': 100,
'e': 101,
'f': 102,
'g': 103,
'h': 104,
'i': 105,
'j': 106,
'k': 107,
'l': 108,
'm': 109,
'n': 110,
'o': 111,
'p': 112,
'q': 113,
'r': 114,
's': 115,
't': 116,
'u': 117,
'v': 118,
'w': 119,
'x': 120,
'y': 121,
'z': 122}
2017-12-22 14:45 添加评论 评分
0jxcia
dict1 = {'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 96, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}
1) 将该字典按照ASCII码的值排序
sorted(dict1.items(),key=lambda x:x[1],reverse=False)
2) 有一个字母的ASCII错了,修改成正确的值,并从新排序
for k in dict1:
if dict1[k] != ord(k):
print k
dict1[k] = ord(k)
sorted(dict1.items(),key=lambda x:x[1],reverse=False)
import string
tuple1 = tuple(string.uppercase)
list1 = []
for i in tuple1:
list1.append(ord(i))
dict2 = dict(zip (tuple1,list1))
dict2.update(dict1)
dict3 = dict2
dict3 = dict(dict,**dict2)