Python智慧编程——第4讲 Python更多数据存储类型

第 4 课 Python 更多数据存储类型


4.1 元组——Tuples

元组就像是一个使用小括号的列表。


4.1.1 元组的创建

学会了列表的创建之后,元组创建方法非常的简单。比如下面,我们创建一个汽车品牌名称的元组,然后打印输出来。

汽车图片

输入代码

# 在这里写上你的代码:-)

carTuples = ('奔驰', '奥迪', '法拉第', '吉利')

print(carTuples)

运行结果

运行结果

同样,像列表那样,我们也可以通过索引的方式,来对已创建的元组中,查找汽车品牌的名称。


输入代码

# 在这里写上你的代码:-)

carTuples = ('奔驰', '奥迪', '法拉第', '吉利')

print(carTuples[2])

运行结果

运行结果

这里,我们把变量carTuples定义为字符串奔奥迪、法拉第、吉利。 然后, 就像用列表一样,我们把元组中索引位置为2的元素打印出来: print(carTuples [2])。


4.1.2 元组中元素的操作

我们可以像列表那样使用“+”号,来对元组进行拼接相连的操作:


输入代码

# 在这里写上你的代码:-)

carTuples1 = ('奔驰', '奥迪', '法拉第', '吉利')

carTuples2 = ('VOLVO', 'JAC')

carTuples = carTuples1 + carTuples2

print(carTuples)

运行结果

运行结果

元组与列表的主要区别在于元组一旦创建就不能再做改动了。例如,我们想要把元组carTuples中的第一个字符串替换成 “大众”的话,我们会得到一条错误信息:


输入代码

# 在这里写上你的代码:-)

carTuples = ('奔驰', '奥迪', '法拉第', '吉利')

carTuples[0] = '大众'

print(carTuples)

运行结果

运行结果

那为什么还要用元组而不用列表呢?主要是因为有时候对一些你知道永远不会改变的事情还是很有用的。如果你创建一个由两个元素组成的元组,它里面将一直就放着这两个元素。


4.2 字典——Maps


4.2.1 字典是一组组的键与值

在Python里,像列表和元组一样,字典(diet,是dictionary的缩写。也叫map,映射)也是一堆东西的组合。字典与列表或元组不同的地方在于,字典中的每个元素都有一个键(key) 和一个对应的值(value)。字典正是由这一个个键值对(你也可以理解为,每一个数值的前面,都会有一个唯一的身份证号码)组成的数据集合。

体育图片

例如,假设我们有一个列表,上面是一些人和他们最喜爱的运动。我们可以把这个信息放到Python 的列表中,把名字在前,把他们最喜爱的运动在后:


输入代码

# 在这里写上你的代码:-)

sports = [

                    '姚明,篮球',

                    '邓亚萍,乒乓球',

                    '林丹,羽毛球',

                    '丁俊晖,斯诺克'

            ]

print(sports[1])

运行结果

运行结果

如果我问你丁俊晖最擅长的体育运动是什么,你可能要浏览这个列表才能找到答案:斯诺克。 但是如果列表中有 100 个(或者更多)人呢?

 现在,如果我们把同样的信息放到字典中,把人名作为键,把他们喜爱的运动作为值,那么Python代码像这样来写:


输入代码

# 在这里写上你的代码:-)

sports = {

                    '姚明' : '篮球',

                    '邓亚萍' : '乒乓球',

                    '林丹' : '羽毛球',

                    '丁俊晖' : '斯诺克'

            }

print(sports['丁俊晖'])

运行结果

运行结果

我们用冒号把每个键和它的值分开,每个键和值都分别用单引号括起来。还要注意字典中的所有元素都是用大括号({})括起来的,而不是圆括号或者方括号。这样做的结果就得到了一个映射表(每个键对应一个特定的值),我们同样也可以用一张表示意出来:

Key                          Value

姚明                        篮球

邓亚萍                    乒乓球

林丹                        羽毛球

丁俊晖                    斯诺克

想要删除字典中的值,就要用到它的键。下面是如何删除的例子


输入代码

# 在这里写上你的代码:-)

sports = {

                    '姚明' : '篮球',

                    '邓亚萍' : '乒乓球',

                    '林丹' : '羽毛球',

                    '丁俊晖' : '斯诺克'

            }

del sports['林丹']

print(sports)

运行结果

运行结果

要替换字典中的值, 也要用到它的键:


输入代码

# 在这里写上你的代码:-)

sports = {

                    '姚明' : '篮球',

                    '邓亚萍' : '乒乓球',

                    '林丹' : '羽毛球',

                    '丁俊晖' : '斯诺克'

            }

sports['丁俊晖'] = '台球'

print(sports)

运行结果

运行结果

我们用丁俊晖作为键,把他最喜爱的运动从斯诺克改成了台球。

如你所见,使用字典与使用列表和元组类似,只是你不能用“+”号运算符来把两个字典连在一起。如果你试一下的话就会看到一条错误信息:


输入代码

# 在这里写上你的代码:-)

sports1 = {

                    '姚明' : '篮球',

                    '邓亚萍' : '乒乓球',

                    '林丹' : '羽毛球',

                    '丁俊晖' : '斯诺克'

            }

sports2 = {

                    '李娜' : '网球',

                    '郭晶晶' : '跳水'

            }

sports = sports1 + sports2

print(sports)

运行结果

运行结果


4.3 水浒英雄代号查询——程序设计

武松打虎图片

喜欢看水浒传的人都知道,梁山泊上的108将都是有顺序的,如果想记清楚每一位英雄的名称以及号码顺序是比较难的一件事,那么现在我们来使用所学的知识来进行一场英雄大点兵的Python程序,我们不仅可以做到知道每一位英雄的名称以及号码顺序,我们还可以查询这名英雄在梁山泊上的职务信息,下面我们一起来试一下吧!


输入代码

# 在这里写上你的代码:-)

heroMap = {

                    '宋江' : '天魁星及时雨--总兵都头领',

                    '卢俊义' : '天罡星玉麒麟',

                    '吴用' : '天机星智多星--掌管机密军师',

                    '公孙胜' : '天闲星入云龙',

                    '关胜' : '天勇星大刀--马军五虎将、左军大将',

                    '林冲' : '天雄星豹子头--马军五虎将、右军大将',

                    '秦明' : '天猛星霹雳火--马军五虎将、先锋大将',

                    '呼延灼' : '天威星双鞭--马军五虎将、合后大将',

                    '花荣' : '天英星小李广--马军八骠骑、兼先锋使',

                    '柴进' : '天贵星小旋风--掌管钱粮头领',

                    '李应' : '天富星扑天雕',

                    '朱仝' : '天满星美髯公--马军八骠骑、兼先锋使',

                    '鲁智深' : '天孤星花和尚--步军头领',

                    '武松' : '天伤星行者',

                    '董平' : '天立星/天健星双枪将--马军五虎将、虎军大将',

                    '张清' : '天捷星/天玄星没羽箭--骠骑、兼先锋使',

                    '杨志' : '天暗星青面兽',

                    '徐宁' : '天祐星/天佑星金枪手'

            }

print(heroMap['武松'])

运行结果

运行结果

以上没有列举全部的梁山泊英雄信息,如果你想继续完善我们这个信息库,可以去图书馆或者网上查找所有的英雄信息,来把剩余的信息录入Python程序中,尝试着自己来编写一下吧!


4.4 智能故事大王——程序设计

故事机图片

在很多无聊的晚上,多么希望有一个能够陪自己小机器人,能抱着它玩耍,也能听它讲故事,偷偷告诉你,经过这几节课的学习,我们现在可以编写出讲故事的程序了。现在我们来一起做一个智能讲故事的Python程序吧!然后在Mu上运行,把自己设计程序故事讲给我们的伙伴听。


输入代码

# 在这里写上你的代码:-)

import random

storyTime = ('秦朝', '昨天', '今天', '上个世纪末', '风黑月高的晚上', '明朝')

storyPerson1 = ('阿里', '小强', '小莫', '阿毛', '旺财', '阿凯', '小鞋匠')

storyPerson2 = ('阿美', '嘟嘟', '小龙', '阿飞', '秋香', '越哥', '老铁匠')

storyPlace = ('菜市口', '学校', '北极', '洗手间', '游泳池', '被窝', '天空')

storyMatter = ('锻炼身体', '吃羊肉火锅', '唱歌', '洗澡', '侃大山', '战斗')

story = '故事发生在' + random.choice(storyTime) + ''

story = story + random.choice(storyPerson1) + ''

story = story + random.choice(storyPerson2) + ''

story = story + '' + random.choice(storyPlace) + ''

story = story + random.choice(storyMatter) + ''

print(story)

运行结果

运行结果

在上述的Python程序中,我们使用random(随机数)模块的choice()函数,来从我们创建的时间、人物、地点与事件字符串元组中随机选择字符,使用字符串拼接的方式为我们呈现故事的讲述。


读者朋友您们好,这是作者第一次写文章,难免经验有些不足!

如果您有什么意见和建议欢迎留言!!!

如果喜欢文章,希望能得到您的点赞鼓励!


国防服役——未完待续

你可能感兴趣的:(Python智慧编程——第4讲 Python更多数据存储类型)