練習題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)

相關文章
相關標籤/搜索