练习题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}

1) 将该字典按照ASCII码的值排序

2) 有一个字母的ASCII错了,修改为正确的值,并重新排序

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

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

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合并成一个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)

转载于:https://blog.51cto.com/goldstar52/2136293

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值