零基础学Python编程(少儿趣味版)
上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 字典的内置方法

表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实现这样一种机制。