![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=1738885853-LaMWHRjFq4TzUZaB55WrnaZad1YMLyMk-0-48937b928e30572abf6f4ebca2f0c2c4)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P120_59727.jpg?sign=1738885853-J8w37zO4tF3KHk36ZKAabdaIwIAmjAXI-0-7eb2b7b9c1f27d534755f2b5f2fe693e)
程序设计中如果每个小兵皆要个别设计这样太没效率了,我们可以使用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=1738885853-jnItHniWQfljDfIyQCsxvlDhua5trkRh-0-64cf7a263ffa35cf631a9cf818e17b5b)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60158.jpg?sign=1738885853-sxQM8hb5Deyr36wwvJsn1yczaNq7PebK-0-b3fd3a0cefb26b77c0103c4505018d22)
读者可能会想,上述小兵各种特征皆相同,用处可能不大,其实对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=1738885853-3TtHcsgP1JdMVkdxNXEc8EVLbXPZ4CtN-0-77413054d670298127b15305f1dbd434)
执行结果
![](https://epubservercos.yuewen.com/6532E4/17214367404798806/epubprivate/OEBPS/Images/Figure-P121_60167.jpg?sign=1738885853-kBHPFp1odDKoeZ901oQ3Zndz6rNUiQAD-0-c18ee0688c562d547db474632e9246d2)
当然读者可以使用相同方式扩充上述实例,这个将当作习题给读者练习。