练习题9

  1. 现有一个字典dict1 保存的是小写字母a-z对应的ASCII码

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

  1. 用最简洁的代码,本身生成一个大写字母 A-Z 及其对应的ASCII码值的字典dict2(使用dict,zip,range方法)排序

  2. 将dict2与第一题排序后的dict1合并成一个dict3

一、将该字典按照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

  1. 现有一个字典dict1 保存的是小写字母a-z对应的ASCII码

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)

  1. 用最简洁的代码,本身生成一个大写字母 A-Z 及其对应的ASCII码值的字典dict2(使用dict,zip,range方法)

import string

tuple1 = tuple(string.uppercase)

list1 = []

for i in tuple1:

list1.append(ord(i))

dict2 = dict(zip (tuple1,list1))

  1. 将dict2与第一题排序后的dict1合并成一个dict3

dict2.update(dict1)

dict3 = dict2

dict3 = dict(dict,**dict2)

相关文章
相关标签/搜索