![Python王者归来](https://wfqqreader-1252317822.image.myqcloud.com/cover/412/31794412/b_31794412.jpg)
上QQ阅读APP看书,第一时间看更新
9-3 建立字典列表
读者可以思考一下程序实例ch9_2.py,我们建立了小兵soldier0字典,在真实的游戏设计中为了让玩家展现雄风,玩家将面对数十、数百或更多个小兵所组成的敌军,为了管理这些小兵,可以将每个小兵当作一个字典,字典内则有小兵的各种信息,然后将这些小兵字典放入列表(list)内。
程序实例ch9_22.py:建立3个小兵字典,然后将小兵组成列表(list)。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P120_59721.jpg?sign=1739687725-grgJziNsLlMy27KnsPxd7OpS63YkaWBA-0-2f4cc121b487a0e900155c02a785da13)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P120_59727.jpg?sign=1739687725-0JrzmtfAsFyLdYAXHoitCE5GOdH4NjZF-0-b74b326f8affa2df245aa1c8a4b20b9f)
程序设计中如果每个小兵皆要个别设计这样太没效率了,我们可以使用7-2节的range( )函数处理这类的问题。
程序实例ch9_23.py:使用range( )建立50个小兵,tag是red、score是3、speed是slow。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60152.jpg?sign=1739687725-55R4dr5HqITWXgoDkFEt0Nuem1ugmnsH-0-a03b422d48666bc8207f04f0c795a681)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60158.jpg?sign=1739687725-yEPKyxL4eA1S7Axq6rDmXFBVC7Qc6IrG-0-041752584126f25321239afb046a952d)
读者可能会想,上述小兵各种特征皆相同,用处可能不大,其实对Python而言,虽然50个特征相同的小兵放在列表内,但每个小兵皆是独立,可用索引方式存取。通常可以在游戏过程中使用if语句和for循环处理。
程序实例ch9_24.py:重新设计ch9_23.py,建立50个小兵,但是将编号第36到38名的小兵改成tag是blue、score是5、speed是medium。
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60161.jpg?sign=1739687725-ge9Bxy3a4WUvB2n64guqf7dtBelg6CO8-0-62542a1b60b51f1f5aa0d52a23876694)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60167.jpg?sign=1739687725-nG6sFZ8KOEfxg5XouhGEGLc90wZrsRFx-0-fb00dc7ab9b6d0fe6581d93e1b043909)
当然读者可以使用相同方式扩充上述实例,这个将当作习题给读者练习。