本文共 3729 字,大约阅读时间需要 12 分钟。
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码的值排序
2) 有一个字母的ASCII错了,修改为正确的值,并重新排序
用最简洁的代码,自己生成一个大写字母 A-Z 及其对应的ASCII码值的字典dict2(使用dict,zip,range方法)
1、将该字典按照ASCII码的值排序
In [312]: sorted(dict1.items())
Out[312]:
[('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', 96),
('p', 112),
('q', 113),
('r', 114),
('s', 115),
('t', 116),
('u', 117),
('v', 118),
('w', 119),
('x', 120),
('y', 121),
('z', 122)]
2、将该字典按照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}
3、用最简洁的代码,自己生成一个大写字母 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}
4、将dict2与第一题排序后的dict1合并成一个dict3In [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)
转载于:https://blog.51cto.com/goldstar52/2136293