![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=1738819260-9LsSVf4FV0CocrjxXwjncxpjVagnNf0Y-0-6bd58383144689dd7d30c2f5d0c68a91)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P120_59727.jpg?sign=1738819260-e7VoiygjGgBUZ72W0pnQgfgKjdt93M84-0-535fcf6f5a36c67cdcc86a036e242d4e)
程序设计中如果每个小兵皆要个别设计这样太没效率了,我们可以使用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=1738819260-twFHDMH1wXNtqz2mUN8y6XU0CIIqElJa-0-7cc27a6907aa39640696e9b260a0ae97)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60158.jpg?sign=1738819260-qKsAurbPTFTCcyc60J9pt7CaZtRUsbB9-0-356163050e8d9befd3fe1b1ad084ab5f)
读者可能会想,上述小兵各种特征皆相同,用处可能不大,其实对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=1738819260-BajCm8vNlGMGdL0t22AIMSYMdmrD6TU2-0-127a1ee424de46d72fcb21328e4190e0)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60167.jpg?sign=1738819260-pb0oUFMkpBDSPJurHXKXrE7UFfMcz1ak-0-cd6fe652cdc07e96c61df41f83efcea0)
当然读者可以使用相同方式扩充上述实例,这个将当作习题给读者练习。