
上QQ阅读APP看书,第一时间看更新
2.3.4 操作字典
利用字典,裁判长迪克纳瑞已经添加了很多运动员,也记录了对应的参赛项目。“我能不能知道现在已经添加了多少名运动员呢?”
“当然可以。”洛克威尔告诉他,同样可以使用len()来取得字典的长度,也就是里面元素的个数,“就像这样。”
>>> len(roll) 6
可以使用str()将字典转换成字符串。例如:
>>> str(roll) "{'格兰特蕾妮': ['10000公里竞速', 0, '精准抛射', '着陆技巧', '星矿探索'], '大熊': [0, '20000公里避障飞行', '精准抛射', 0, '星矿探索'], '西西船长': ['10000公里竞速', 0, '精准抛射', '着陆技巧', '星矿探索'], '克里克里': [0, '20000公里避障飞行', '精准抛射', '着陆技巧', '星矿探索'], '菲菲兔': ['10000公里竞速', 0, '精准抛射', '着陆技巧', '星矿探索'], '洛克威尔': ['10000公里竞速', '20000公里避障飞行', 0, '着陆技巧', 0]}"
使用type()命令可以查看变量roll的类型:
>>> type(roll) <class 'dict'>
“我知道了,dict就是字典的英文简写呀!”迪克纳瑞说。
字典还具有以下一些内置方法,都使用“字典变量名.方法名”的形式来操作,如表2-2所示。
表2-2中有一个词:遍历。它的意思是从头到尾对每个元素都用相同的方式处理一遍。其中有几个比较常用,我们来试一试:
>>> roll.keys() dict_keys(['格兰特蕾妮', '大熊', '西西船长', '克里克里', '菲菲兔', '洛克威尔']) >>> roll.get('大熊') [0, '20000公里避障飞行', '精准抛射', 0, '星矿探索'] >>> roll.values() dict_values([['10000公里竞速', 0, '精准抛射', '着陆技巧', '星矿探索'], [0, '20000公里避障飞行', '精准抛射', 0, '星矿探索'], ['10000公里竞速', 0, '精准抛射', '着陆技巧', '星矿探索'], [0, '20000公里避障飞行', '精准抛射', '着陆技巧', '星矿探索'], ['10000公里竞速', 0, '精准抛射', '着陆技巧', '星矿探索'], ['10000公里竞速', '20000公里避障飞行', 0, '着陆技巧', 0]])
“比赛要开始了啊!”洛克威尔指着卡尔风星球的竞技场说,“字典的用途可广泛了,比如用代码表示一张图的时候!”
【练一练】
(1)给你一个字典:dict_RMB = {1:'壹', 2:'贰', 3:'叁', 4:'肆', 5:'伍', 6:'陆', 7:'柒', 8:'捌', 9:'玖', 10:'拾', 0:'零'},尝试制作一个程序,当用户输入一个数字时,返回它的中文大写。
(2)字典加密:给定一个字典,用键组成密码,对应的值就组成实际的含义。比如告诉密码为“20190122”,再按指定的字典的页码查出对应的字,就知道实际的含义了。试用Python实现这样一种机制。