上一节课,我们重点讲到的是字典,他与列表有相同之处,却还是有更多的不同。
学习编程,其实就是学其神,忘其形,需要灵活运用。目前主流的计算机语言大致有Python、Java、C、C++、JavaScript、C#、Ruby、PHP以及Objective-C,如果大家熟练掌握了一种,其它的也是有共同之处的,举一反三。
嵌套
嵌套含义:将一系列字典存储在列表中,或将列表作为值存储在字典中。说直白点,就是看“值”的需要来做选择。
———————————————————
names_0={'color':'red','points':'55'}
names_1={'color':'green','points':'35'}
names_2={'color':'yellow','points':'25'}
names=[names_0,names_1,names_2]
for name in names:
print(name)
结果是:
{'color': 'red', 'points': '55'}
{'color': 'green', 'points': '35'}
{'color': 'yellow', 'points': '25'}
———————————————————
这里是一个简单的将字典嵌套在列表中,先是创建了三个字典,再将三个字典储存在列表中,再用for语句将三个创建的字典打印出来。
这里有没有人会提出疑问呢?万一列表出包含许多个字典,这个怎么搞?难道要一一的去创建吗?
当然不用了!我们可以像之前一样,创建一个空列表,再通过函数range()来创建多个字典,这不就可以解决了吗,咱们还是来看看我是怎么写的:
————————————————
names=[]
for name_number in range(10):
name={'color': 'red', 'points': '55'}
names.append(name)
print(names)
结果是:[{'color': 'red', 'points': '55'}, {'color': 'red', 'points': '55'}, {'color': 'red', 'points': '55'}, {'color': 'red', 'points': '55'}, {'color': 'red', 'points': '55'}, {'color': 'red', 'points': '55'}, {'color': 'red', 'points': '55'}, {'color': 'red', 'points': '55'}, {'color': 'red', 'points': '55'}, {'color': 'red', 'points': '55'}]
——————————————————
由于篇幅有限,就只生成了10个字典。
虽然简单的利用计算机生成了10个字典,却用到的知识还是挺多的:列表的运用、for语句、函数range(),临时变量和添加元素append()的使用,这也是我为什么一直强调要学好基础的原因。
我相信大家在这还是有个疑问,这里生成的可是相同的字典,不是我们所想的呀,是吧
哈哈,我之前学到这也是这么想的,可是一想,也是这么个理,没错。我们可以稍稍思考一下,比如热门的王者荣耀,英雄联盟,里面的元素其实不用,队英雄外无外乎“大小龙”,“红蓝buff”,大部分都小兵,小兵只有三种:远程,近战,炮车
我们可以生成一批相同的字典,然后再批量去修改就好了,比起一个个添加,我觉得效率是天差地别,还是看刚才的例子:
——————————————————
names=[]
for name_number in range(10):
name={'color': 'red', 'points': '55'}
names.append(name)
for new_name in names[0:2]:
if new_name['color']=='red':
new_name['color']='green'
new_name['point']='89'
print(new_name)
结果是:
{'color': 'green', 'points': '89'}
{'color': 'green', 'points': '89'}
——————————————————
解读:承接上面的例子,创建了10个同样的字典在列表names中,下一部我们使用for
循环,挑选出前面的两个字典,将其储存在new_name中,再利用if语句的判断,使其执行下面的代码,给其赋值,修改字典中的值,最后再打印结果。
看到这里,有没有想要去设计一下游戏的冲动呢?哈哈,不着急,其实游戏设计大多也不是用python设计的,但每个语言都有自己的优势和不足,没有必要去比较,没有什么是十全十美的。